今年4月发过一篇AI的osint用法,利用ai在社交平台模拟正常用户来维护账号,如下:
这个功能看着用途小,但其实有过真实开源情报工作的人都明白,维护各平台的账号问题是一个很耗时和耗精力的事(类似于养号),用AI实现的话,稳定不说,还能省出很多人力来,也有小伙伴问过实现的问题,陆续回答过一些实现方式,其实有思路后其它的部分都很简单,无非是代码问题和一些处理思路。
简单来说,目的就是利用各类大型语言模型(如chatgpt),进行模拟正常用户的账号的使用。
def get_tip() -> Optional[str]:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo-16k",
messages=[
{"role": "system", "content":
"You are a human knowledgeable in "
"cybersecurity, programming and AI."},
{"role": "user", "content":
"Can you give me a tweet-length "
"cybersecurity, programming or AI tip "
"(or trivia)? It can also be a pun."}
]
)
return response.choices[0].message['content']
把要使用 OpenAi 的 API和 Twitter API key拿到并设置好,因为不是复杂的交互,可以用3.5的gpt。通过将它们存储在环境变量中
# 环境变量设置
openai_api_key = os.getenv('OPENAI_API_KEY')
x_api_key = os.getenv('X_API_KEY')
x_api_secret_key = os.getenv('X_API_SEC')
x_access_token = os.getenv('X_ACC_TOKEN')
x_access_token_secret = os.getenv('X_ACC_TOKEN_SEC')
x_bearer_token = os.getenv('X_BEARER_TOKEN')
# 初如化OpenAI
openai.api_key = openai_api_key
现在,有了正常的环境设置后,就能正式用于账号使用了,如下
def post_to_twitter(message: str) -> None:
client = tweepy.Client(
consumer_key=x_api_key,
consumer_secret=x_api_secret_key,
access_token=x_access_token,
access_token_secret=x_access_token_secret,
bearer_token=x_bearer_token
)
client.create_tweet(text=message)
因为正常不可能发布时间有太准确的规律,所以加一些发布时间随机化,
if __name__ == "__main__":
if random.randint(1, 100) == 1:
tip = get_tip()
if tip:
delay_minutes = random.randint(0, 60)
time.sleep(delay_minutes * 60)
post_to_twitter(tip)
注意事项:
我使用的python3,需要安装openai tweepy库
有gpt4的账户可以改为gpt4,可以用于更多也更细腻的一些用途,比如回复和带有图片等。
因为使用方式问题,没加入定时部分,有需要可以用window/linux的定时任务来辅助。
-
OPENAI_API_KEY
:OpenAI API 密钥。 -
TWITTER_API_KEY
:Twitter API 密钥。 -
TWITTER_API_SECRET_KEY
:Twitter API 密钥。 -
TWITTER_ACCESS_TOKEN
:Twitter 访问令牌。 -
TWITTER_ACCESS_TOKEN_SECRET
:Twitter 访问令牌密钥。
如果有些app类的,并且不是可控协议的,可以用按键精灵代码配合。
完整代码:
import os
import openai
import tweepy
import logging
import random
import time
from typing import Optional
# Setup logging to write to a file
logging.basicConfig(filename='cybersecurity_tips_log.txt',
level=logging.INFO,
format='%(asctime)s - %(message)s')
# Load environment variables
openai_api_key: str = os.getenv('SOCK_PUPPET_OPENAI_API_KEY')
twitter_api_key: str = os.getenv('SOCK_PUPPET_TWITTER_API_KEY')
twitter_api_secret_key: str = os.getenv('SOCK_PUPPET_TWITTER_API_SECRET')
twitter_access_token: str = os.getenv('SOCK_PUPPET_TWITTER_ACCESS_TOKEN')
twitter_access_token_secret: str = os.getenv('SOCK_PUPPET_TWITTER_ACCESS_TOKEN_SECRET')
twitter_bearer_token: str = os.getenv('SOCK_PUPPET_TWITTER_BEARER_TOKEN')
# Initialize OpenAI
openai.api_key = openai_api_key
def get_tip() -> Optional[str]:
try:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo-16k",
messages=[
{"role": "system", "content": "You are a human knowledgeable in "
"cybersecurity, programming and AI."},
{"role": "user", "content": "Can you give me a tweet-length "
"cybersecurity, programming or AI tip "
"(or trivia)? It can also be a pun."}
]
)
# Remember to remove the double quotes from the response!
return response.choices[0].message['content'].replace('"', '')
except Exception as e:
logging.error(f"Error in fetching cybersecurity tip: {e}")
return None
def post_to_twitter(message: str) -> None:
try:
client = tweepy.Client(
consumer_key=twitter_api_key,
consumer_secret=twitter_api_secret_key,
access_token=twitter_access_token,
access_token_secret=twitter_access_token_secret,
bearer_token=twitter_bearer_token
)
client.create_tweet(text=message)
logging.info(f"Cybersecurity tip posted on Twitter: {message}")
except Exception as e:
logging.error(f"Error in posting to Twitter: {e}")
if __name__ == "__main__":
if random.randint(1, 100) == 1:
tip = get_tip()
if tip:
delay_minutes = random.randint(0, 60)
logging.info(f"Waiting for {delay_minutes} minutes before posting")
time.sleep(delay_minutes * 60) # Convert minutes to seconds
post_to_twitter(tip)
else:
logging.info("No cybersecurity tip was posted.")
else:
logging.info("Script did not run this time.")
原文始发于微信公众号(军机故阁):用AI在开源情报方向养号
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论