안녕하세요~ 오랜만에 블로그를 올립니다 ㅎㅎ 대학원 일때문에 블로그를 못 썼습니다 ㅠㅠ
저의 블로그 통계를 보니 모의 침투가 가장 인기가 많은 것 같기 때문에 오늘도 모의 침투에 대한 블로그를 쓰기로 했습니다.
오늘은 HackTheBox의 Easy/Medium인 머신 "GoodGames"를 풀어 보겠습니다. 리눅스 환경이고, SQL Injection을 통해 Administrator의 비밀번호 해시를 받고 뚫은 다음에 로그인하고, SSTI 취약점을 악용하고 shell를 받습니다. 권한상승은 home directory에 mount되어 있다는 사실 활용하여 /bin/bash binary로 root shell을 얻을 것입니다.
먼저 nmap을 돌려 보겠습니다. 보시다시피 웹서버밖에 없습니다.
홈페이지에 들어가 보니 게임에 대한 페이지인 것 같습니다. 저는 이럴 때 유저 로그인하고 유저 등록부터 살펴보는 것을 좋아합니다.
burpsuite로 request를 intercept하고 유저를 등록하고 로그인해 보겠습니다. 대부분 홈페이지들은 유저들의 정보를 데이트베이스에 저장하기 때문에 sql injection이 흔한 취약점입니다. 아래 burp request 보시면 email 변수에 payload를 입력했습니다.
위 payload로 로그인 인증을 우회할 수 있습니다. 아울러 payload 덕분에 피해자의 비밀번호를 몰라도 로그인이 가능합니다.
sql로 설명해 드리자면:
"--" 부분 때문에 뒤에 오는 password가 생략됩니다
request를 forward 시키면 admin으로 로그인됩니다. sql injection 취약점이 존재한다는 것이 확인되었고 이제 union 공격으로 데이터베이스 정보 탈취 시도하겠습니다.
Union select으로 일단 데이터베이스에 column 몇 개가 있는지 확인하고 결과는 4개입니다, 4번째 column은 다른 명령어도 받기 때문에 데이터베이스에 대한 다양한 정보를 얻을 수 있습니다.
데이터베이스의 버전은 8.0.27. 이 버전의 다른 취약점도 존재하는지 알아볼 수 있습니다.
데이터베이스 이름은 "main"인 걸로 확인됐습니다.
blog, blog_comments, user라는 table들이 존재합니다
table 안에 email, id, name, password이라는 column들이 존재합니다.
마지막 union select query로 정보를 받을 수 있습니다.
crackstation에 들어가서 비밀번호의 hash를 뚫고 비밀번호는 superadministrator입니다.
아까의 sql injection 공격으로 로그인 인증을 우회했고, 비밀번호로 다른 홈페이지 접근이 가능해졌습니다.
새로운 홈페이지를 돌러보니 유저 정보를 바꿀 수 있더라고요. 이 홈페이지는 flask로 만들어졌는데 SSTI라는 취약점이 흔합니다. 이 취약점은 정보 탈취뿐만 아니라 RCE까지 가능합니다. SSTI 궁금하시면 저와 함께 TeamH4C에서 활동하는 me2nuk님의 블로그를 추천해 드립니다.
Full Name 필드에 {{2+2}} payload를 입력해 봤고, 오른쪽을 보니 4가 뜨기 때문에 SSTI 취약점이 존재한다는 것이 확인됐습니다.
다음 payload로 shell 얻어보도록 하겠습니다
첫 번째 shell 성공!
하지만 둘러보니 docker container이기 때문에 이 shell은 큰 도움이 안 됩니다. 네트워크 안에 다른 host도 존재하나 확인하고...
172.19.0.1 아이피 주소 가지고 있는 host가 존재하고, 22번 포트가 열려 있기 때문에 ssh로 로그인할 수 있습니다.
아까 탈취한 비밀번호로 augustus이라는 유저로 로그인이 가능합니다.
Docker 환경 탈출이 처음이라 권한상승이 힘들었지만 touch으로 파일을 만들어 보니, Container하고 augustus의 머신에 똑같이 생산되더라고요. 아울러 container에서 파일을 만들어보면 augustus 머신에 파일의 소유자... root네요?
그러면! augustus 머신의 /bin/bash/ binary를 container로 옮기고, container 환경에서 bash의 소유권도 변경하고 파일의 권한도 chmod으로 바꿔 보겠습니다.
./bash -p로 바이너리를 실행시키고... root가 됩니다!! 모의 침투 성공!
Hack The Box 해킹 모의 침투 #8: 윈도우 Active Directory 환경 해킹 (3) | 2022.06.26 |
---|---|
Hack The Box 해킹 모의 침투 #7 (0) | 2022.05.30 |
Hack The Box 해킹 모의 침투 #5 (1) | 2022.05.20 |
Hack The Box 해킹 모의 침투 #4 (0) | 2022.05.19 |
Hack the Box 해킹 모의 침투 OpenAdmin #1 (0) | 2022.05.19 |