HFish/docs/6-4-api.md
2021-08-02 17:56:47 +08:00

601 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

![image-20210730173724481](http://img.threatbook.cn/hfish/20210730173725.png)
> API配置页面是管理HFish api_key和查阅API样例的页面
通过HFish的API接口能够实现把蜜罐数据同步给其它应用或设备从而实现更自主丰富的数据展示和安全设备联动。
> 相关SDK我们希望能够得到社区用户的支持大家能够把自己对蜜罐数据的使用方案贡献出来帮助更多人的使用。
### 已经支持的三种API接口调用示例
- 获取攻击来源
<!-- tabs:start -->
#### **cURL**
```curl
curl --location --request POST 'https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"start_time": 0,
"end_time": 0,
"intranet": "0",
"threat_label": [
"Scanner"
]
}'
```
#### **Python**
```python
import requests
import json
url = "https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY"
payload = json.dumps({
"start_time": 0,
"end_time": 0,
"intranet": "0",
"threat_label": [
"Scanner"
]
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
```
#### **GO**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY"
method := "POST"
payload := strings.NewReader(`{
"start_time": 0,
"end_time": 0,
"intranet": "0",
"threat_label": [
"Scanner"
]
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
#### **JAVA**
```java
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"start_time\": 0,\n \"end_time\": 0,\n \"intranet\": \"0\",\n \"threat_label\": [\n \"Scanner\"\n ]\n}");
Request request = new Request.Builder()
.url("https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
```
#### **JavaScript**
```javascript
var settings = {
"url": "https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json"
},
"data": JSON.stringify({
"start_time": 0,
"end_time": 0,
"intranet": "0",
"threat_label": [
"Scanner"
]
}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
```
#### **PHP**
```php
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"start_time": 0,
"end_time": 0,
"intranet": "0",
"threat_label": [
"Scanner"
]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
```
#### **Shell**
```shell
wget --no-check-certificate --quiet \
--method POST \
--timeout=0 \
--header 'Content-Type: application/json' \
--body-data '{
"start_time": 0,
"end_time": 0,
"intranet": "0",
"threat_label": [
"Scanner"
]
}' \
'https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY'
```
<!-- tabs:end -->
- 获取攻击详情
<!-- tabs:start -->
#### **cURL**
```curl
curl --location --request POST 'https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"start_time": 0,
"end_time": 0,
"page_no": 1,
"page_size": 100,
"threat_label": ["Scanner"],
"client_id": [],
"service_name": [],
"info_confirm": "1"
}'
```
#### **Python**
```python
import requests
import json
url = "https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY"
payload = json.dumps({
"start_time": 0,
"end_time": 0,
"page_no": 1,
"page_size": 100,
"threat_label": [
"Scanner"
],
"client_id": [],
"service_name": [],
"info_confirm": "1"
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
```
#### **GO**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY"
method := "POST"
payload := strings.NewReader(`{
"start_time": 0,
"end_time": 0,
"page_no": 1,
"page_size": 100,
"threat_label": ["Scanner"],
"client_id": [],
"service_name": [],
"info_confirm": "1"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
#### **JAVA**
```java
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"start_time\": 0,\n \"end_time\": 0,\n \"page_no\": 1,\n \"page_size\": 100,\n \"threat_label\": [\"Scanner\"],\n \"client_id\": [],\n \"service_name\": [],\n \"info_confirm\": \"1\"\n}");
Request request = new Request.Builder()
.url("https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
```
#### **JavaScript**
```javascript
var settings = {
"url": "https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json"
},
"data": JSON.stringify({
"start_time": 0,
"end_time": 0,
"page_no": 1,
"page_size": 100,
"threat_label": [
"Scanner"
],
"client_id": [],
"service_name": [],
"info_confirm": "1"
}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
```
#### **PHP**
```php
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"start_time": 0,
"end_time": 0,
"page_no": 1,
"page_size": 100,
"threat_label": ["Scanner"],
"client_id": [],
"service_name": [],
"info_confirm": "1"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
```
#### **Shell**
```shell
wget --no-check-certificate --quiet \
--method POST \
--timeout=0 \
--header 'Content-Type: application/json' \
--body-data '{
"start_time": 0,
"end_time": 0,
"page_no": 1,
"page_size": 100,
"threat_label": ["Scanner"],
"client_id": [],
"service_name": [],
"info_confirm": "1"
}' \
'https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY'
```
<!-- tabs:end -->
- 获取该IP攻击使用的账号信息
<!-- tabs:start -->
#### **cURL**
```curl
curl --location --request POST 'https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"start_time": 0,
"end_time": 0,
"intranet": "0",
"threat_label": [
"Scanner"
]
}'
```
#### **Python**
```python
import requests
import json
url = "https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY"
payload = json.dumps({
"start_time": 0,
"end_time": 0,
"attack_ip": []
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
```
#### **GO**
```go
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY"
method := "POST"
payload := strings.NewReader(`{
"start_time": 0,
"end_time": 0,
"attack_ip": []
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
```
#### **JAVA**
```java
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"start_time\": 0,\n \"end_time\": 0,\n \"attack_ip\": []\n}");
Request request = new Request.Builder()
.url("https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
```
#### **JavaScript**
```javascript
var settings = {
"url": "https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json"
},
"data": JSON.stringify({
"start_time": 0,
"end_time": 0,
"attack_ip": []
}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
```
#### **PHP**
```php
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"start_time": 0,
"end_time": 0,
"attack_ip": []
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
```
#### **Shell**
```shell
wget --no-check-certificate --quiet \
--method POST \
--timeout=0 \
--header 'Content-Type: application/json' \
--body-data '{
"start_time": 0,
"end_time": 0,
"attack_ip": []
}' \
'https://SERVER_IP/api/v1/attack/ip?api_key=YOUR_API_KEY'
```
<!-- tabs:end -->