숨기기 - 블랙박스 쓰기

HTB 숨겨진 상자 설명


초기 매거진과 방화벽이 관련되었을 때, 숨겨진 것은 하드박스였지만, 그 후에 사용자 부분은 매우 간단했다. (셸은 Windows 박스이기 때문에 좀 복잡하다.)Root은 전혀 어렵지 않지만 빈틈이 작용하기 위해서는 약간의 변통을 해야 합니다.

초기 매거


나는 일반적인 nmap 스캐닝으로 이 상자의 초기 매거를 시작했지만, 속도는 매우 느리다.이것은 통상적으로 방화벽이 있다는 것을 의미하기 때문에 나는 nmap 스캐닝을 할 수 없다.반대로, 나는masscan을 사용하여 우리가 방화벽 밖의 어떤 포트에 접근할 수 있는지를 보았는데, masscan은 비동기적인 요청을 보내고 응답을 처리하기 때문에 속도가 더 빨랐다.masscan에 대한 더 많은 정보를 읽을 수 있습니다here
root@fast:/home/roacker# masscan -p 1-65535,U:1-65535 --rate=1000 10.10.10.116 -e tun0
Starting masscan 1.0.3 (http://bit.ly/14GZzcT) at 2019-02-13 16:37:08 GMT
 -- forced options: -sS -Pn -n --randomize-hosts -v --send-eth
Initiating SYN Stealth Scan
Scanning 1 hosts [131070 ports/host]
Discovered open port 161/udp on 10.10.10.116
따라서 포트 161/udp는 열려 있습니다.nmap 서비스 스캔을 실행합니다.
root@fast:/home/roacker# nmap -Pn -sV -sU -p 161 10.10.10.116

Starting Nmap 7.60 ( https://nmap.org ) at 2019-02-13 10:39 CST
Nmap scan report for 10.10.10.116
Host is up.

PORT  STATE SERVICE VERSION
161/udp open snmp  SNMPv1 server (public)
Service Info: Host: Conceal

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.45 seconds
너무 좋아요.SNMP입니다.이 서비스를 열거해 봅시다.나는 snmpmibs 플러그인을 설치한 상태에서 snmpwalk를 사용할 것이다. 이것은 출력을 더욱 읽을 수 있게 할 것이다.SNMP를 통해 얻을 수 있는 데이터를 살펴보겠습니다.
root@fast:/home/roacker# snmpwalk -mALL -c public -v 2c 10.10.10.116

The output is huge, so I am only going to select what I think is interesting:

SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.311.1.1.3.1.1
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (3147631) 8:44:36.31
SNMPv2-MIB::sysContact.0 = STRING: IKE VPN password PSK - 9C8B1A372B1878851BE2C097031B6E43
SNMPv2-MIB::sysName.0 = STRING: Conceal
SNMPv2-MIB::sysLocation.0 = STRING:

TCP-MIB::tcpConnState.0.0.0.0.21.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.80.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.135.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.445.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.49664.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.49665.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.49666.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.49667.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.49668.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.49669.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.49670.0.0.0.0.0 = INTEGER: listen(2)

HOST-RESOURCES-MIB::hrDeviceDescr.7 = STRING: WAN Miniport (IKEv2)
HOST-RESOURCES-MIB::hrDeviceDescr.8 = STRING: WAN Miniport (PPTP)
HOST-RESOURCES-MIB::hrDeviceDescr.9 = STRING: Microsoft Kernel Debug Network Adapter
HOST-RESOURCES-MIB::hrDeviceDescr.10 = STRING: WAN Miniport (L2TP)
HOST-RESOURCES-MIB::hrDeviceDescr.11 = STRING: Teredo Tunneling Pseudo-Interface
HOST-RESOURCES-MIB::hrDeviceDescr.12 = STRING: WAN Miniport (IP)
HOST-RESOURCES-MIB::hrDeviceDescr.13 = STRING: WAN Miniport (SSTP)
HOST-RESOURCES-MIB::hrDeviceDescr.14 = STRING: WAN Miniport (IPv6)
HOST-RESOURCES-MIB::hrDeviceDescr.15 = STRING: Intel(R) 82574L Gigabit Network Connection
HOST-RESOURCES-MIB::hrDeviceDescr.16 = STRING: WAN Miniport (PPPOE)
HOST-RESOURCES-MIB::hrDeviceDescr.17 = STRING: WAN Miniport (Network Monitor)
우리는 방화벽을 우회하는 데 성공한 후에 이 서비스들이 우리를 도울 수 있도록 감청 서비스 목록을 누설했다.IPSec 서비스가 실행 중이고 해시 처리를 거친 IKE 미리 공유 키가 있습니다.우리는 CrackStation로 이 문제를 쉽게 해결할 수 있다.

저희가 지금 미리 공유한 키가 생겼어요:Dudecake1!
snmpenum라는 다른 도구를 사용하여 일일이 열거하면 다른 멋진 결과를 얻을 수 있다.
----------------------------------------
    LISTENING TCP PORTS
----------------------------------------

21
80
135
445
49664
49665
49666
49667
49668
49669
49670

----------------------------------------
    USERS
----------------------------------------

Guest
Destitute
Administrator
DefaultAccount
너무 좋아요.우리는 또 한 명의 사용자를 누설했다. 극빈하다
우리는 방화벽을 어떻게 돌아가는지 안다.IPSec VPN 터널을 구축하여 방화벽 뒤의 다른 서비스에 액세스할 수 있습니다.우리 일을 시작합시다!

방화벽을 돌다


이것은 상자 안에서 가장 어려운 부분이다.연결에 성공하기 위해 정확한 프로필을 얻는 것은 생각보다 쉽지 않습니다.나는 프로필을 수정하는 데 이틀이 걸렸다.
우선, 우리는 ubuntu 기계에 IPSec 클라이언트를 설치해야 한다.우리는 StrongSwan을 사용할 수 있습니다. 이것은 OpenSwan의 업데이트와 유지 보수 지점입니다.다음 명령을 사용하여 설치할 수 있습니다.
apt-get install strongswan
우리는 IPSec에 필요한 모든 것을 가지고 있습니다 (우리의 Ip: 10.10.13.11 | VPN Ip: 10.10.116 | PSK: Dudecake1!)IKE 단계를 제외하고 우리는 쉽게 검색할 수 있다.
root@fast:/home/roacker# ike-scan 10.10.10.116
Starting ike-scan 1.9.4 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
10.10.10.116  Main Mode Handshake returned HDR=(CKY-R=838e57d6429c37d2) SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration(4)=0x00007080) VID=1e2b516905991c7d7c96fcbfb587e46100000009 (Windows-8) VID=4a131c81070358455c5728f20e95452f (RFC 3947 NAT-T) VID=90cb80913ebb696e086381b5ec427b1f (draft-ietf-ipsec-nat-t-ike-02\n) VID=4048b7d56ebce88525e7de7f00d6c2d3 (IKE Fragmentation) VID=fb1de3cdf341b7ea16b7e5be0855f120 (MS-Negotiation Discovery Capable) VID=e3a5966a76379fe707228231e5ce8652 (IKE CGA version 1)

Ending ike-scan 1.9.4: 1 hosts scanned in 0.070 seconds (14.20 hosts/sec). 1 returned handshake; 0 returned notify
그래서 위상은 3des-sha1-modp1024입니다.IPsec를 구축합시다.conf 파일(/etc/ipsec.conf에서):
config setup
 charondebug="all"

conn conceal
 keyexchange=ikev1
 ike=3des-sha1-modp1024
 esp=3des-sha1
 leftid=Destitute
 left=10.10.13.11
 leftsubnet=10.10.13.0/24
 leftauth=psk
 rightid=%any
 right=10.10.10.116
 rightsubnet=10.10.10.116[tcp/%any]
 rightauth=psk
 auto=add
 type=transport
 fragmentation=yes
 keyingtries=1

include /var/lib/strongswan/ipsec.conf.inc
우리는 지금 우리의 IPsec를 구축할 수 있다.기밀 파일(/etc/ipsec.secrets), 초기 SNMP 스캔에서 누설된 사용자 이름(Destitute)을 사용합니다.
# This file holds shared secrets or RSA private keys for authentication.

# RSA private key for this host, authenticating it to any other host
# which knows the public part.

# this file is managed with debconf and will contain the automatically created private key
#include /var/lib/strongswan/ipsec.secrets.inc
#
Destitute %any : PSK Dudecake1!
중요한 시점: VPN에 연결합니다.
root@fast:~/conceal# systemctl start ipsec.service
root@fast:~/conceal# ipsec up conceal
initiating Main Mode IKE_SA conceal[1] to 10.10.10.116
generating ID_PROT request 0 [ SA V V V V V ]
sending packet: from 10.10.13.11[500] to 10.10.10.116[500] (236 bytes)
received packet: from 10.10.10.116[500] to 10.10.13.11[500] (208 bytes)
parsed ID_PROT response 0 [ SA V V V V V V ]
received MS NT5 ISAKMPOAKLEY vendor ID
received NAT-T (RFC 3947) vendor ID
received draft-ietf-ipsec-nat-t-ike-02\n vendor ID
received FRAGMENTATION vendor ID
received unknown vendor ID: fb:1d:e3:cd:f3:41:b7:ea:16:b7:e5:be:08:55:f1:20
received unknown vendor ID: e3:a5:96:6a:76:37:9f:e7:07:22:82:31:e5:ce:86:52
generating ID_PROT request 0 [ KE No NAT-D NAT-D ]
sending packet: from 10.10.13.11[500] to 10.10.10.116[500] (244 bytes)
received packet: from 10.10.10.116[500] to 10.10.13.11[500] (260 bytes)
parsed ID_PROT response 0 [ KE No NAT-D NAT-D ]
generating ID_PROT request 0 [ ID HASH ]
sending packet: from 10.10.13.11[500] to 10.10.10.116[500] (76 bytes)
received packet: from 10.10.10.116[500] to 10.10.13.11[500] (68 bytes)
parsed ID_PROT response 0 [ ID HASH ]
IKE_SA conceal[1] established between 10.10.13.11[Destitute]...10.10.10.116[10.10.10.116]
scheduling reauthentication in 10019s
maximum IKE_SA lifetime 10559s
generating QUICK_MODE request 2689023240 [ HASH SA No ID ID ]
sending packet: from 10.10.13.11[500] to 10.10.10.116[500] (196 bytes)
received packet: from 10.10.10.116[500] to 10.10.13.11[500] (188 bytes)
parsed QUICK_MODE response 2689023240 [ HASH SA No ID ID ]
CHILD_SA conceal{1} established with SPIs cdb43748_i e05fc992_o and TS 10.10.13.11/32 === 10.10.10.116/32[tcp]
connection 'conceal' established successfully

우리는 지금 이미 연결되었다.또한 포트 80의 IIS 또는 포트 21의 ftp 서버 (익명 로그인 허용) 와 같은 내부 서비스에 액세스할 수 있습니다.

사용자


지금 이거 쉬워요.우리는 ASp 케이스를 IIS 서버에 업로드하고 역방향 접근을 얻기만 하면 된다.우리는 뿌리로 삼아야 하기 때문에meterpeter를 사용해야 한다.
포트 80에서 dirbuster를 실행하면 업로드 디렉토리가 표시됩니다.

정찰을 한 후에 ftp 서버에 업로드된 모든 내용이/upload에 있는 것을 발견했습니다. 그래서 웹 셸을 업로드합니다. (저는 github에서 찾은 것을 사용할 것입니다. 하지만 당신이 좋아하는 것을 사용할 수 있습니다. RCE가 가장 중요합니다.)

우리는 사용자가 있다!

뿌리


우리가 어떤 일을 하기 전에, 우리는 msfvenom을 사용하여 적당한 역방향 tcp MeterMeterMeter 셸을 만들고 웹 셸에서 그것을 실행해야 한다.

우리는 그것을 실행하여 역방향 유량계 케이스를 얻었다.

여기서, 나는 MeterMeter의 getsystem autopwn을 사용해 보았지만, 그것은 작용하지 않았다.이것이 바로 내가 잘못을 저지른 부분이다. 나는 정상적인 빈틈을 이용할 수 없다고 생각한다. 나는privesc에 접근하는 특수한 방법을 찾아야 한다. 이것은 내가 정상적인 매거를 뛰어넘었다는 것을 의미한다.이것은 나로 하여금 방향을 잘못 걷게 했다.
아무런 유용한 것도 발견하지 못한 후, 나는 더 많은 것을 열거하기로 결정했다.나의 특권을 보기 위해 whoami/priv를 실행했습니다.나는 동전을 모의할 수 있다.맞히다

이것이 바로 내가 다시 곤경에 빠진 곳이다.나는 뜨거운 감자와 다른 변체로 NT 권위 있는 영패를 훔쳐 껍질을 번식하려고 했지만, 이 감자의 빈틈은 작용하지 않았다.나는 JuicyPotato 의 저장소를 보았을 때 그들이 대량의 CLSID 데이터베이스를 가지고 있다는 것을 발견했다.나 하나 있어. 이렇게 하면 수동으로 시뮬레이션할 수 있어.그리고 나는 또 다른 msfvenom 바이러스를 생성했다. 이 바이러스는 서로 다른 포트에서 반방향 케이스를 생성했다. 그리고 나는 이 영패를 모의하여 케이스를 생성했다.

내가 얻은 유량계 케이스를 살펴보자.

너무 좋아요.뿌리내리자!

좋은 웹페이지 즐겨찾기